C从文件读取时输出"{"

Ali*_*Ali -1 c

我用Xcode编写了这段代码来从文件中读取:

int main (int argc, char *argv[])
{       
    FILE *fp = fopen("hello.rtf", "r");

    printf("%c\n", fgetc(fp));

    fclose(fp);

    if (fp == NULL)
    {
        printf("Could not open file!");
        return 1;
    }

    // insert code here...
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我得到的字符是"{",它不是文件中的第一个字符.

M.M*_*M.M 5

RTF规范说RTF文件中的第一个字符应该是{,所以看起来你得到了预期的结果.请记住,文字处理软件不会向您显示文件中的确切字符,但它会显示文件中标记字符描述的格式化文本.

要查看文件中的确切字符,可以使用cat(POSIX)或type(DOS/Windows命令提示符)输出它.

if (fp == NULL)检查应在后立即走fopen线; 到最后为时已晚.