使用fputc()在文件中存储整数会更改整数格式

使用fputc()在文件中存储整数会更改整数格式,c,file,ascii,C,File,Ascii,我对C非常陌生,我正在尝试使用fputc()在文件中存储一个整数。当我查看文件时,该函数工作。整数的格式不同 例如: 1) fputc(ppm1->max,文件1) ppm1->max指向一个255的整数值,但当我查看该文件时,它显示为“ÿ” (二) ppm1->width和ppm1->height分别指向20和16,但在文件中显示为DC4 DLE 您看到的是整数值的字符表示形式(转换为无符号int) 对于扩展,十进制值255表示ÿ,这就是写入文件的内容 也就是说,在fputc((char)pp

我对C非常陌生,我正在尝试使用fputc()在文件中存储一个整数。当我查看文件时,该函数工作。整数的格式不同

例如:

1)
fputc(ppm1->max,文件1)

ppm1->max
指向一个255的整数值,但当我查看该文件时,它显示为“ÿ”

(二)


ppm1->width
ppm1->height
分别指向20和16,但在文件中显示为DC4 DLE

您看到的是整数值的字符表示形式(转换为
无符号int

对于扩展,十进制值
255
表示
ÿ
,这就是写入文件的内容


也就是说,在
fputc((char)ppm1->width,file1)的情况下
,强制转换是不必要的,因为
fputc()
int
作为第一个参数。此外,整数值20和16表示不可打印的ASCII,因此在ASCII模式下,您可能看不到任何有意义的输出。

您可以使用
fprintf()
将int写入文件 e、 g

fprintf(/*filePointer*/,%s%s%d”,“Write”,“an”,“integer”,12);
希望这对您有所帮助:)

您只需查看8位值中的(扩展)值—基础原始二进制值仍然正确。
fputc((char)ppm1->width, file1);
fputc(' ',file1);
fputc(ppm1->height, file1);