2017-02-26 51 views
0

我對C很新,我試圖使用fputc()在文件中存儲整數。該函數在我看整數格式不同的文件時起作用。使用fputc()在文件中存儲整數更改整數格式

例如:

1)fputc(ppm1->max, file1);

ppm1->max點255的整數值,但是當我看該文件爲「Y」出現。

2)

fputc((char)ppm1->width, file1); 
fputc(' ',file1); 
fputc(ppm1->height, file1); 

ppm1->widthppm1->height分別指向20和16,但是,當在文件中它們顯示出作爲DLE DC4。

+1

你只是看(擴展)[ASCII當量(HTTP:// ascii.cl)的8位值 - 底層原始二進制值仍然正確。 –

回答

1

你看到的是整數值的字符表示(轉換爲unsigned int)。

對於擴展的ASCII table,十進制值255代表ÿ,這就是寫入文件的內容。

也就是說,如果是fputc((char)ppm1->width, file1);,則不需要轉換,因爲fputc()需要int作爲第一個參數。另外,整數值20和16指的是不可打印的ASCII,所以在ASCII模式下,您可能看不到任何有意義的輸出。

0

你可以使用fprintf()寫INT到您的文件 如

fprintf(/*filePointer*/,"%s %s %s %d","Write","an","integer",12); 希望這有助於:)