使用fputc()在文件中存储整数会更改整数格式
我对C非常陌生,我正在尝试使用fputc()在文件中存储一个整数。当我查看文件时,该函数工作。整数的格式不同 例如: 1)使用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
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);