繁体   English   中英

int分配给char的类型不兼容

[英]Incompatible types in assignment of int to char

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。 帮帮我,我做错了什么?

在您的代码中ch不是char ,而是char[20] -20个字符的数组。 您不能为其分配fgetc的结果,因为fgetc返回一个int (包含单个charEOF标记)。

ch的声明更改为int ch可以解决此问题。 您也可以放弃对feof的调用,因为它总是在错误的时间发生(您在读取操作之后而不是在读取操作之前调用它)。

for (;;) {
    int ch = fgetc(file);
    if (ch == EOF) break;
    if (ch == '\n') lines++;
}
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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM