【发布时间】:2023-03-03 05:39:18
【问题描述】:
我想从一个文本文件中读取 80 个字符,将它们保存为一个字符串,然后打印该字符串以进行验证。 我正在使用 fread 并且有这个代码:
char message[80];
size_t nread = fread(message, 1, sizeof(message), fp);
printf("Message received: \"__%s__\"\n", message);
输出是:
收到的消息:“__我很想改变世界,但他们不会
��__"
当整个短语不在文件中时
和:
__我很想改变世界,但他们不会给我源代码
@__
当整个短语都在文件中时。
我尝试删除它并重写文本,但我再次得到相同的输出。
怎么了?字符集的东西?
【问题讨论】:
-
@cnicutar,如果它读作
80,那将是message末尾的一个。 -
@hmjd 是的,
nread必须在此之前检查。或者只是将 sizeof - 1 传递给fread。