2013-02-11 91 views
-2

我的文本文件包含整數像:123 879709789 43536 8768768讀取文本文件包含由空格隔開隨機大小的整數

我想在像陣列的一個數組索引來讀取整個數[1] = 123陣列[2] = 879709789 。

這是我已經試過:

ifstream myfile("numbers.txt"); 

if (myfile.is_open()) 
{ 
    while (myfile.good() && !myfile.eof()) 
    { 
     for(i=1; i<myfile.eof(); i++) 
     { 
      myfile >> ar[i]; 
      if(ar[i]=="") 
      { 
       i++; 
      } 
     } 
    } 
} 
+0

想要顯示你試過的嗎? – ogzd 2013-02-11 21:04:09

+0

你有沒有嘗試過自己的東西?從現在您的問題來看,我們看不到您的任何努力以某種方式自己解決問題。 – LihO 2013-02-11 21:04:59

+0

ifstream myfile(「numbers.txt」); 如果(myfile.is_open()){ 而(myfile.good()&& myfile.eof()){對於 (I = 1; I > AR [一世]; (ar [] ==「」){ i ++; } – 2013-02-11 21:05:49

回答

3

像這樣:

#include <vector> 
#include <fstream> 
#include <iterator> 


std::ifstream infile("myfile.txt"); // or just use `std::cin` 

std::vector<int> v(std::istream_iterator<int> { infile }, 
        std::istream_iterator<int> { }); 

現在v包含了所有你的號碼。如果在途中出現輸入錯誤,您將看不到它,輸入將停止。如果這是個問題,請使用getline/istringstream方法,正如本網站上數百個類似問題所記錄的那樣。

+0

預期', '或'...' 前 '{' 令牌GOT上代碼INT主此錯誤(INT的argc,字符* argv的[]){ 的std :: ifstream的infile中( 「numbers.txt」); //或者只是使用'的std :: cin' 如果(infile.good()){ 的std ::矢量 V(標準:: istream_iterator {的infile}的std :: istream_iterator {}); } – 2013-02-11 21:13:06

+1

@ user2062703可能是因爲您沒有C++ 11支持,在這種情況下,您可以用圓括號替換大括號。 – juanchopanza 2013-02-11 21:14:46

+0

@ user2062703:請參閱http://ideone.com/CpnP9N – LihO 2013-02-11 21:18:46

相關問題