gpt4 book ai didi

c - 在C中读取和写入无符号字符缓冲区到文件?

转载 作者:行者123 更新时间:2023-12-01 16:26:29 25 4
gpt4 key购买 nike

以下代码将无符号字符数组(定义为字节)写入文件:

typedef unsigned char byte;
void ToFile(byte *buffer, size_t len)
{
FILE *f = fopen("out.txt", "w");
if (f == NULL)
{
fprintf(stderr, "Error opening file!\n");
exit(EXIT_FAILURE);
}
for (int i = 0; i < len; i++)
{
fprintf(f, "%u", buffer[i]);
}
fclose(f);
}

如何将文件从 out.txt 读回 byte 缓冲区?目标是逐个字节迭代缓冲区字节。谢谢。

最佳答案

如果你想读回来,我不会使用 %u把它写出来。 %u将是可变宽度输出,因此 1 占用一个字符,而 12需要两个,依此类推。当你读回来并看到 112你不知道这是三个字符 (1, 1, 2),还是两个字符 (11, 2;或 1, 12),还是一个字符 (112)。如果您需要 ASCII 文件,则可以使用固定宽度输出,例如 %03u。这样每个字节始终是 3 个字符。然后你可以使用 fscanf("%03u", buffer[i]) 一次读取一个字节.

关于c - 在C中读取和写入无符号字符缓冲区到文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23553064/

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