嘿大家這是我的第一篇文章,所以如果我犯了任何錯誤,如沒有足夠的信息等,請讓我知道,所以我不再讓他們。while循環退出後,字符串的內容被刪除?
所以我的問題是我需要採取一個文件的內容,然後將它們輸入到一個字符串,我有工作。然而,在while循環結束後,如果我嘗試在while循環外使用該字符串並處理字符串的內容。字符串是空白的,似乎沒有內容。我通過使用std :: cout行來確定這一點。我相信這是一個範圍問題,但我不知道如何解決它。以下是有關該問題的代碼,任何提示或幫助將不勝感激!
std::string str;
std::ifstream file;
while(!file.eof()){
getline(file, str);
std::cout << str << "";
}
file.close();
std::cout << str << "";
std::map<std::string, int> map;
for(int i = 0; i < str.length(); ++i){
std::string sub = str.substr(i, k);
std::cout << sub << std::endl;
map.insert(make_pair(sub, 1));
}
std::cout << "" << std::endl;
此外,我試圖向上斬串入大小k它是在代碼的不同部分中定義的變量,所以我用C++中的SUBSTR方法,相信這是工作,因爲當我把它放在while循環中,我可以打印出文件的內容,但格式是關閉的,我認爲這是因爲while循環運行的性質,但我不確定,如果我錯了,請糾正我或有任何誤解。
一個明顯的錯誤,你不應該再犯的是,所示的代碼不能滿足所有的[MCVE]的要求。 –
好吧,我只是通讀該文檔,我明白,謝謝你的指針! – firetiger443