当我尝试运行程序时,我打印的行数是错误的。
LINES: 0
尽管我的.txt文件中有五行内容,但这是输出结果:
以下是我的程序:
#include<stdio.h>
#include<stdlib.h>
int countlines(char *filename);
void main(int argc, char *argv[])
{
printf("LINES: %d\n",countlines(argv[1]));
}
int countlines(char *filename)
{
// count the number of lines in the file called filename
FILE *fp = fopen(filename,"r");
int ch=0;
int lines=0;
if (fp == NULL);
return 0;
lines++;
while ((ch = fgetc(fp)) != EOF)
{
if (ch == '\n')
lines++;
}
fclose(fp);
return lines;
}
我确信这是一个简单的错误,但我是编程新手。非常感谢任何帮助。
char
和EOF
进行比较容易引发问题。 - Carl Norumfgetc()
返回一个int值,以便将EOF作为无效字符值传回。 - Joachim Isaksson