代码之家  ›  专栏  ›  技术社区  ›  learner

ISO C++禁止指针和整数之间的比较:C错误中的文件处理

  •  1
  • learner  · 技术社区  · 10 年前

    我正在尝试从文件中读取。看完后,我想显示它的内容。我的程序看起来像:

    #include <stdio.h>
    #include <string.h>
    #include <stdio.h>
    
    
    int main(int argc, char const *argv[])
    {
        // 
        char array_of_input[10][10];
        FILE *fp;
        fp = fopen("input.txt","r+");
        int i = 0,j = 0;
        char ch;
    
        while ( !feof(fp))
        {
            ch = (char)fgetc(fp);
            printf("%c\n", ch );
            if ( ch == " ")
            {
                continue;
            }
            else if ( ch == "\n")
            {
                i++ ;
                j = 0 ;
            }
            else
            {
                array_of_input[i][j] = ch;
                j++;
            }
        }
        return 0;
    }
    

    但是,我犯了错误:

    ISO C++禁止在指针和整数之间进行比较[-fpermission] 如果(ch==“”)

    fgetc(fp) 返回int,然后将其类型转换为 char 。我在这里看不到任何整数。

    1 回复  |  直到 10 年前
        1
  •  2
  •   Mureinik    10 年前

    ch 是一个 char -你应该将其与 烧焦 文字(用单引号表示),而不是 一串 文字(用双引号表示):

    if ( ch == ' ')
    {
        continue;
    }
    else if ( ch == ' ')
    {
        i++ ;
        j = 0 ;
    }
    else  // rest of code snipped