我正在尝试编写一个C程序来读取集合数据文件中有多少行/条目。我已经使用了下面的代码,它工作正常(来自:什么是最简单的方法来计算 ASCII 文件中的换行符?)
#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 个条目的小文件上尝试这个,但稍后我将使用一个非常大的文件,每行之间都有空格,所以我想知道如何区分...或者我应该将 line_count 除以 2 以获得条目数?