1
我正在嘗試編寫一個程序,該程序讀取一組數據文件中有多少行/條目。我用下面的代碼,它工作正常(從得到:What is the easiest way to count the newlines in an ASCII file?)讀取數據文件中的條目數C
#include <stdio.h>
int main()
{
FILE *correlations;
correlations = fopen("correlations.dat","r");
int c; /* Nb. int (not char) for the EOF */
unsigned long newline_count = 0;
/* count the newline characters */
while ((c=fgetc(correlations)) != EOF) {
if (c == '\n')
newline_count++;
}
printf("%lu newline characters\n", newline_count);
return 0;
}
但我想知道是否有更改此位
if (c == '\n')
newline_count++;
成別的東西的方式,因此如果您的數據看起來像
1.0
2.0
3.0
(具有入口,則新線是一個空間,然後一個條目,然後空間)代替
1.0
2.0
3.0
我該如何區分字符/字符串/整數和只是一個新行?我嘗試%s,但它沒有工作.. 我只是首先在一個只有3個條目的小文件上嘗試這個,但我將在稍後使用一個非常大的文件,在每行之間有空格, m想知道如何區分......還是應該將line_count除以2以獲得條目數量?
完美的作品,謝謝! –
也許它晚了,我的大腦只是不正常工作,但..雖然它運行完美,出於某種原因,我似乎無法完全理解..如果我有1.0'空間'2.0 ..它開始閱讀文件的第一個字符它遇到的是1.0 ..我只是在調試器中運行它以查看執行情況,並在它開始時如果(c =='\ n'),然後跳轉到其他if(!isspace(c))並執行那..然後它再次啓動while循環,並且它再次執行相同的操作..然後在第四次執行if(c =='\ n')循環並遞增newline_count ..我有點困惑只是.. –
..我的意思是我沒有得到它做的..:/ 對不起,麻煩.. –