2015-09-30 45 views
1

我似乎無法讓我的文件「paths.txt」讀入我的地圖文件。我無法弄清楚我做錯了什麼。我會很感激任何指針。我想要的最終結果是將每個關鍵值對帶入地圖。讓ifstream將文件中的整數讀入地圖C++

我的文件的格式是

192,16 120,134 256,87 122,167 142,97 157,130 245,232 223,63 107,217 36,63 206,179 246,8 91,178

而且我的代碼是

ifstream myfile("paths.txt"); 
    std::map<int, int> mymap; 
    int a, b; 
    while (myfile.good()) 
    { 
    myfile >> a >> b; 
    mymap[a] = b; 
    } 
    mymap; 
+0

擺脫逗號,非空白分隔符導致流失敗。此外[爲什麼iostream :: eof內部循環條件被認爲是錯誤的?](http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) – user657267

+0

@ user657267無論如何編碼它沒有刪除65000,是嗎?該文件有很多逗號:-D – Phi

回答

2
  1. 您的文本文件中沒有任何可讀的逗號。
  2. 此外,而不是while (myfile.good()),使用while (myfile >> ...)
std::map<int, int> mymap; 

char dummy; 
int a, b; 
while (myfile >> a >> dummy >> b) 
{ 
    mymap[a] = b; 
} 
+0

@R Sahu工作真棒超級謝謝。我因爲某種原因認爲它在閱讀時忽略了它。 – Phi

+0

@菲爾,不客氣。 –