2015-09-19 35 views
0

我有一個充滿漂浮在4x3的矩陣如下讀文件,存儲在陣列中,錯誤:不對應的「運營商>>」

1.1 2.123 3.4 
4.5 5 6.5 
7 8.1 9 
1 2 3.1 

我試圖讀取文件weights01.txt此文件並將數據傳輸到名爲newarray的數組。這是我使用的代碼:

int main() 
{ 
    ofstream myfile; 
    float newarray[4][3]; 
    myfile.open ("weights01.txt"); 
    for(int i = 0 ; i < 4; i++) // row loop 
    { 
     for(int j = 0 ; j < 3; j++) // column loop 
     { 
      myfile >> newarray[i][j]; // store data in matrix 
     } 
    } 
    myfile.close(); 
    return 0; 
} 

我得到一個錯誤與線

myfile >> newarray[i][j]; 

錯誤:「MYFILE敵不過 '操作>>' >> newarray [i] [j ]」

我不明白爲什麼這個錯誤是發生

我搜索了這個「不匹配的以前的問題‘運營商>>’錯誤包括thisthis我一個我讀了this關於重載操作符的長篇討論,但我沒有找到解釋(可能是因爲我之前沒有使用過多的文件,也沒有真正關注正在發生的事情。

回答

5

您無法從std::ofstream輸出文件流)中讀取,它僅用於輸出。 改爲使用std::ifstream(即文件流中)。

如果您有任何關於哪個標準庫設施做什麼的問題,請查看您最喜愛的參考文獻,例如cppr


OT備註:您可以直接從文件名構建流:

std::ifstream myfile ("weights01.txt"); 

,你不必close()文件的時候,你都做了,流的析構函數會處理,對於你。