我有一个文件,我想要阅读并打印到屏幕上.我正在使用XCode作为我的IDE.这是我的代码......
fp=fopen(x, "r");
char content[102];
fread(content, 1, 100, fp);
printf("%s\n", content);
Run Code Online (Sandbox Code Playgroud)
该文件的内容是"培根!" 打印出来的是什么\254\226\325k\254\226\234.
我已经谷歌搜索了这个答案,但C中文件I/O的文档看起来很稀疏,而且有什么不太清楚.(至少对我来说......)
编辑:我切换到只是阅读,而不是追加和阅读,并切换了两个中间参数fread().现在打印出Bacon!\320H\320这些东西意味着什么?反斜杠编号的数字或字母.我也按照建议改变了打印方式.
您正在打开文件以进行追加和阅读.您应该打开它进行读取,或将读指针移动到您要读取的位置(开始,我假设).
FILE *fp = fopen(x, "r");
Run Code Online (Sandbox Code Playgroud)
要么
FILE *fp = fopen(x, "a+");
rewind(fp);
Run Code Online (Sandbox Code Playgroud)
此外,fread(...)不会将您的字符串置零,因此您应该在打印之前将其终止:
size_t len = fread(content, 1, 100, fp);
content[len] = '\0';
printf("%s\n", content);
Run Code Online (Sandbox Code Playgroud)