C从文件读取时输出“{”
我使用Xcode编写了以下代码来读取文件:C从文件读取时输出“{”,c,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; }
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;
}
我得到的字符是{,它不是文件中的第一个字符。RTF规范说RTF文件中的第一个字符应该是{,看来您得到了预期的结果。请记住,文字处理软件不会显示文件中的确切字符,但会显示文件中字符描述的格式化文本 要查看文件中的确切字符,可以使用cat POSIX或键入DOS/Windows命令提示符将其输出
if fp==NULL检查应该在fopen行之后立即执行;最后已经太迟了。.rtf富文本格式文件不是一个文本文件。请参阅@BLUEPIXY的代码示例,我已将文件扩展名更改为.txt,但仍然得到相同的输出。这是因为内容格式的差异不是文件扩展名的问题在上。我认为我们应该将其重新保存为在编辑器中打开的文本,以便能够读取富文本文件。@BLUEPIXY它刚刚工作了!!!谢谢,伙计。文件扩展名只是帮助操作系统选择正确的程序来打开该文件。它与文件内容无关。您可以将*.mp4文件重命名为任何扩展名,如*.doc、*.txt、*.xyz。。。而且只要文件中有正确的头,它仍然可以在任何媒体播放器中毫无问题地打开。