2017-10-06 236 views
-1

我想從文本文件讀入2個數組中的文件。我排除了在我的其他功能或我的主要問題,並留下大約5行代碼....C++讀取文件到多個數組

它會循環通過我的文檔到最後,但它只輸入一次通過txt循環。任何想法都會很棒!

void load_donations(string donor[], string donation[]) 
{ 

    string text; 

    cout << "What *.txt file would you like to load? "; 
    cin >> text; 
    text += ".txt"; 
    cout << text << endl; 
    ifstream infile; 
    infile.open (text.c_str()); 
    int i = 0; //moves to next slot in array 

    while (!infile.eof()) 
    { 

     getline(infile, donor[i]); 
     getline(infile, donation[i]); 
     i++; 

    } 

    infile.close(); 
} 
+0

不會這個工作捐獻[i] =捐獻者[我]? – brownKnight

+0

我不知道你在說什麼,我應該這樣做... 但我想要的是我的.txt文件閱讀這樣的。 麥精 鞋 亨利 現金 先生的Biggles 食品 史蒂夫 時間 然後每個偶數行進入施主[i]和奇數行進入陣列[1]。我的問題是它似乎只有一個循環。如果我指出一個循環計數器,它會顯示它遍歷所有行,而不是將它們保存到數組中。 – Hooch

+0

無關[爲什麼iostream :: eof內部循環條件被認爲是錯誤的?](https://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) – user4581301

回答

-1

對於這一點,你需要通過文字聲明的char動態數組,並 然後從文件字符讀取和保存,在循環中動態數組的字符。

這對你有意義嗎?

+0

它確實...像stringstream?我的問題是,它似乎工作幾乎是這樣,動態數組現在是不行。 – Hooch

+0

你可以發佈你的文本文件的截圖嗎? –

1

問題是我沒有把這個函數的計數傳遞給打印出我的數組的函數..我只是在創建像Peter這樣的最小值時才注意到它。隨時在我的出路上踢我。

+0

這就是爲什麼MCVE是每個成功程序員的工具箱的一部分。無論如何,或者我認識的每一個人。強烈建議修復'while(!infile.eof())'錯誤,同時處理它。使用'while(getline(infile,donor [i])&& getline(infile,donation [i])){i ++; }' – user4581301