2015-11-16 49 views
-2
#include <iostream> 
#include <fstream> 
#include <conio.h> 
#include <string> 

using namespace std; 

int main() 
{ 
    string arr[3][2]; 
    int i =0,j=0; 
    ofstream out ("test1.dat" , ios::app); 
    string name; 
    while(true) 
    { 
     cin>>name; 
     if(name=="end") 
     break; 
     out << name <<' ' ; 

    } 
    out.close(); 

    ifstream in ("test1.dat", ios::in); 
    in >> name; 
    while(!in.eof()) 
    { 
     arr[i][j]=name; 
     in>>name; 
     j++; 
     arr[i][j]=name; 
     i++; 
     j=0; 

    } 
    in.close(); 
    for(i=0;i<3;i++){ 

    cout<<endl; 
     for(j=0;j<2;j++){ 

      cout<<arr[i][j]<<" ";} 
     } 

    return 0; 
} 

請幫我已經運行時錯誤是我的問題嗎?我想在一個文件中寫入一些數據,然後讀取它們並把它們放在一個數組和然後打印數組。我想通過字符串而不是字符來編寫和讀取文件。瞭解我的弱英語。 謝謝與this.what如何讀取文件,並放在一個陣列

+0

這不是'C',BTW。 –

+0

這與C人無關。至於你的問題:你確定流創建成功嗎?你似乎沒有檢查狀態位。 – szczurcio

+0

在你的閱讀while循環中,很可能'i'變得大於2。 – NathanOliver

回答

0

嘗試在你的while循環中爲我添加一個條件。 這解決您的運行時錯誤與數組邊界,但你仍然有一個邏輯錯誤(除非你想複製同一個詞的出現數組中?)

while(!in.eof() && i < 3) 
{ 
    arr[i][j]=name; 
    in>>name; 
    j++; 
    arr[i][j]=name; 
    i++; 
    j=0; 
} 
相關問題