【发布时间】:2012-11-08 14:59:21
【问题描述】:
我正在尝试读取一个文本文件,但在此之前我想知道我要读取多少个元素。所以我需要计算文本文件的行数。到目前为止,我有这个:
int getLinecount (char *file)
{
int ch, count = 0;
FILE *fp = fopen(file, "r");
if(fp == NULL)
{
return -1;
}
while((ch = fgetc(fp)) != EOF)
{
if (ch == '\n');
{
count++;
}
}
fclose(fp);
return count;
}
这工作得很好。我没有对文本文件进行任何更改,尽管该文件只有 10,000 行,但它仍然打印 130,000。 我在正文中唯一写的是:
linecount = getLinecount("...");
我真的很好奇错误在哪里。另外,是否有更好的选择来获取行数?
【问题讨论】:
-
使用调试器跟踪它会立即将您指向这个
;。 -
了解您的编译器并在编译时打开完整的警告。例如 gcc 的
-Wextra选项会捕获并输出:warning: empty body in an if-statement
标签: c line-count