您可以遍历行中的每个字符并继续递增计数器,直到'\n'遇到行尾().确保以文本模式("r")而不是二进制模式("rb")打开文件.否则,流不会自动将不同平台的行结束序列转换为'\n'字符.
这是一个例子:
int charcount( FILE *const fin )
{
int c, count;
count = 0;
for( ;; )
{
c = fgetc( fin );
if( c == EOF || c == '\n' )
break;
++count;
}
return count;
}
Run Code Online (Sandbox Code Playgroud)
这是一个测试上述功能的示例程序:
#include <stdio.h>
int main( int argc, char **argv )
{
FILE *fin;
fin = fopen( "test.txt", "r" );
if( fin == NULL )
return 1;
printf( "Character count: %d.\n", charcount( fin ) );
fclose( fin );
return 0;
}
Run Code Online (Sandbox Code Playgroud)