好吧,所以我有getline的問題。C++如何正確使用ifline成員的getline
我有一個包含幾個字符串的文件。我自己創建了它,並且我將每個字符串放在一條單獨的行上。
Ex. textfile.txt
Line 1
Line 2
Line 3
Line 4
//Little snip of code
ifstream inFile("textfile.txt");
getline(inFile, string1);
當我調試程序,並要求它打印出字符串1就顯示,「1個線\ r」被保存到字符串1。我知道這是從我創建文件時實際觸及輸入。此問題會導致我的程序出現分段錯誤。我知道我的代碼的工作原理,因爲如果我使用ofstream先寫入文件然後再讀入它,它就可以工作。
因此,對於我的問題,無論如何不使用getline函數來獲取轉義序列\ r?如果我不清楚只是讓我知道。
這裏沒有足夠的代碼來確定問題的原因。 – msw 2010-03-21 04:01:08
我們可以看到更大的代碼樣本嗎? – RobS 2010-03-21 04:13:24
如果您正在調試器中檢查sd :: strings,那麼在字符串末尾可能會有「額外」字符 - 這是可以預料的,考慮到字符串的性質並且不是bug,您需要在檢查它們時考慮到字符串的大小()。 – 2010-03-21 09:57:15