unsigned char*에 fwrite와 printf사용하기
글쓴이: sada0220 / 작성시간: 수, 2009/12/30 - 8:18오후
unsigned char* 를 이용해서 Data를 읽고 쓰고 있는데요.
unsigned char* temp;
fwrite(temp,1,size,stdout); //temp의 내용이 출력됨
printf("%s", temp); //temp의 내용이 출력되지 않음
왜 이런 결과가 나오는 걸까요..
그리고 디버깅 해보면,"" 이렇게 아무것도 없다구 나오네요.. (실제로 비어있지 않을것이라 생각됨)
Forums:


re : unsigned char*에 fwrite와 printf사용하기
일반적으로는 signed char 일 경우 ascii 값을
unsigned char 일 경우 binary 값을 사용합니다.
그리고 정해진 디스크 공간에 data 를 write 하는 fwrite() 와
임시메모리 공간에 print 하는 printf() 와의 출력방식의 차이로도 분명히 있습니다.
printf() 에 %s 대신 %x 를 사용하여 binary 값을 보게하면 string 값은 아니지만 binary 값을 보게 될 것 입니다.
진짜 printf에 의한 출력이 전혀 없었다면
진짜 printf에 의한 출력이 전혀 없었다면 temp[0]이 '\0'이었다에 한표 던집니다.
쓰고보니 오래된 질문이군요.
re:unsigned char*에 fwrite와 printf사용하기
printf("%s", temp); --> printf("%s\n", temp);
출력기준이 \n 입니다.