gpt4 book ai didi

c - fread() 将奇怪的东西放入 char 数组

转载 作者:行者123 更新时间:2023-12-04 12:30:16 24 4
gpt4 key购买 nike

我有一个文件,我想从中读取文件并将其打印到屏幕上。我使用 XCode 作为我的 IDE。这是我的代码...

fp=fopen(x, "r");
char content[102];
fread(content, 1, 100, fp);
printf("%s\n", content);

文件的内容是“培根!”它打印出来的是 \254\226\325k\254\226\234

我在谷歌上搜索了这个答案,但 C 中文件 I/O 的文档似乎很少,而且很少有什么不是很清楚。 (至少对我来说……)

编辑:我切换到只读取,而不是追加和读取,并切换了 fread() 中的两个中间参数。现在它打印出 Bacon!\320H\320 这些东西是什么意思?反斜杠数字数字或字母中的事物。我也按照提示切换了打印方式。

最佳答案

您正在打开文件进行追加和阅读。您应该打开它进行阅读,或者将您的阅读指针移动到您要阅读的位置(我假设是开头)。

FILE *fp = fopen(x, "r");

FILE *fp = fopen(x, "a+");
rewind(fp);

此外,fread(...) 不会以零结束您的字符串,因此您应该在打印之前终止它:

size_t len = fread(content, 1, 100, fp);
content[len] = '\0';
printf("%s\n", content);

关于c - fread() 将奇怪的东西放入 char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9433174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com