我需要計算文本文件中的行數。這是我現在的代碼。計算文本文件中的行數
CStdioFile sampleFile;
sampleFile.Open("test.txt",CFile::modeRead);
long length = 1;
CString row("");
while(sampleFile.ReadString(row))
{
length++;
}
這是行不通的。我沒有得到文本文件中行數的正確值。這有什麼問題?
謝謝。
我需要計算文本文件中的行數。這是我現在的代碼。計算文本文件中的行數
CStdioFile sampleFile;
sampleFile.Open("test.txt",CFile::modeRead);
long length = 1;
CString row("");
while(sampleFile.ReadString(row))
{
length++;
}
這是行不通的。我沒有得到文本文件中行數的正確值。這有什麼問題?
謝謝。
要閱讀Unicode文本文件,你可能想檢查CStdioFile派生實現:CStdioFileEx from codeproject:
http://www.codeproject.com/Articles/4119/CStdioFile-derived-class-for-multibyte-and-Unicode
非常感謝!它現在有效! – molu 2012-07-11 10:49:12
length
應該被初始化爲0
,而不是1
,因爲你還沒有閱讀的第一行:
CString row;
long length = 0;
while (sampleFile.ReadString(row))
{
length++;
}
試着從0數:
long length = 0;
你總會得到比正確值更大的值,對吧?用'0',而不是'1'來初始化'length'。 – Nawaz 2012-07-11 09:10:34
即使它被初始化爲1,該值也應該在標記之外1.在我的例子中,我有一個包含30個奇數行的文本文件,其長度值爲2. – molu 2012-07-11 09:14:20
也許這是一個行結束問題:改變你的程序在每個循環迭代中打印出行的內容。 – 2012-07-11 09:20:02