2017-02-26 1 views
0

저는 C에서 매우 새롭고 fputc()를 사용하여 파일에 정수를 저장하려고합니다. 이 함수는 정수가 다른 형식의 파일을 볼 때 작동합니다. 예를 들어fputc()를 사용하여 파일에 정수를 저장하면 정수 형식이 변경됩니다.

: 정수의 255의 값하지만이 파일을 볼 때 'Y'로 등장하는

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

ppm1->max 점.

2)

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

ppm1->width 각각 20, 16 점 ppm1->height하지만 파일들은 DLE DC4로 표시 할 때.

+1

당신은 단지 (확장) ASCII 등가물 (HTTP보고있는 파일에하는 int 예를 들어

fprintf(/*filePointer*/,"%s %s %s %d","Write","an","integer",12); 희망을 작성하는 fprintf()를 사용할 수 있습니다 ascii.cl) - 8 비트 값의 기본 원시 이진 값은 여전히 ​​정확합니다. –

답변

1

정수 값의 문자 표현 (unsigned int로 변환 됨)이 표시됩니다.

확장자가 ASCII table 인 경우 255의 십진수 값은 ÿ이며 이는 파일에 기록됩니다.

즉, fputc((char)ppm1->width, file1);의 경우 fputc()은 첫 번째 인수로 int을 취하므로이 캐스트는 필요하지 않습니다. 또한 정수 값 20 및 16은 인쇄 할 수없는 ASCII를 나타내므로 ASCII 모드에서는 의미있는 출력을 볼 수 없습니다. // :

0

이 도움이 :)