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

时间:2017-02-26 17:59:35

标签: c file ascii

我对C很新,我试图使用fputc()在文件中存储一个整数。当我查看整个文件的格式不同时,该函数有效。

例如:

1)[0.5, '', 3.5]

fputc(ppm1->max, file1);指向整数值255,但当我查看文件时,它会显示为'ÿ'。

2)

ppm1->max

fputc((char)ppm1->width, file1); fputc(' ',file1); fputc(ppm1->height, file1); ppm1->width分别指向20和16,但在文件中它们显示为DC4 DLE。

2 个答案:

答案 0 :(得分:1)

您所看到的是整数值的字符表示形式(转换为unsigned int)。

对于扩展ASCII table,小数值255代表ÿ,这就是写入文件的内容。

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

答案 1 :(得分:0)

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

fprintf(/*filePointer*/,"%s %s %s %d","Write","an","integer",12); 希望这会有所帮助:)