void trinti1()
{
int b,lines;
char ch[20];
FILE* file = fopen ("Kordinates.txt", "r");
while(!feof(file))
{
ch = fgetc(file);
if(ch == '\n')
{
lines++;
}
}
fclose(file);
}
大家好我正在尝试计算文件中的行数,但似乎fgetc(file)
返回int
并且它无法转换为char。帮助我,我做错了什么?
答案 0 :(得分:2)
在您的代码中ch
不是char
,而是char[20]
- 一个包含20个字符的数组。您无法为其分配fgetc
的结果,因为fgetc
会返回int
(包含单个char
或EOF
标记)。< / p>
将ch
的声明更改为int ch
以解决此问题。您也可以将调用放到feof
,因为它在错误的时间发生(您在读取操作之后调用它,而不是在读取操作之前调用它)。
for (;;) {
int ch = fgetc(file);
if (ch == EOF) break;
if (ch == '\n') lines++;
}
答案 1 :(得分:0)
void trinti1()
{
int b,lines=0;
int ch;
FILE* file = fopen ("Kordinates.txt", "r");
while(EOF!=(ch=fgetc(file)))
{
if(ch == '\n')
{
++lines;
}
}
fclose(file);
}