2012-07-11 118 views
1

我需要計算文本文件中的行數。這是我現在的代碼。計算文本文件中的行數

CStdioFile sampleFile; 
sampleFile.Open("test.txt",CFile::modeRead); 
long length = 1; 
CString row(""); 
while(sampleFile.ReadString(row)) 
{ 
    length++; 
} 

這是行不通的。我沒有得到文本文件中行數的正確值。這有什麼問題?

謝謝。

+0

你總會得到比正確值更大的值,對吧?用'0',而不是'1'來初始化'length'。 – Nawaz 2012-07-11 09:10:34

+0

即使它被初始化爲1,該值也應該在標記之外1.在我的例子中,我有一個包含30個奇數行的文本文件,其長度值爲2. – molu 2012-07-11 09:14:20

+2

也許這是一個行結束問題:改變你的程序在每個循環迭代中打印出行的內容。 – 2012-07-11 09:20:02

回答

0

length應該被初始化爲0,而不是1,因爲你還沒有閱讀的第一行:

CString row; 
long length = 0; 
while (sampleFile.ReadString(row)) 
{ 
    length++; 
} 
+0

即使它被初始化爲1,該值也應該超出標記1.在我的情況下,我有一個30行的文本文件,長度值爲2. – molu 2012-07-11 09:12:05

+0

@molu,問題可能是然後從其他地方來。文件中使用的編碼是什麼? – 2012-07-11 09:14:37

+0

文本保存爲一個Unicode文件。 編輯:它工作在ANSI編碼的文本文件!但我需要它來處理Unicode文件。 – molu 2012-07-11 09:15:41