fwrite함수로 이진파일에 작성할때!
조회수 1372회
#include <stdio.h>
int main(){
FILE * fp;
char* a="all_new";
fp=fopen(data.bin,"wb+");
fwrite(a,200,1,fp);
}
을하고 data.bin 을보니
이렇게 쓰레기값들이 들어가더라고요 7부분을 초과하는 부분들은 그냥 CC CC CC CC...로 채우고 싶은데 어떻게 해야하나요?
1 답변
-
a가 NULL문자 포함해서 8바이트인데 200바이트를 파일에 썼기 때문에 문제가 됩니다.
#include <stdio.h> #include <string.h> int main(){ FILE * fp; char a[200]; memset(a, 0xCC, sizeof(a)); strcpy(a, "all_new"); fp=fopen("data.bin","wb+"); fwrite(a,200,1,fp); fclose(fp); }
memset은 버퍼를 지정한 문자로 초기화하는 함수입니다. 위에처럼 하면 a버퍼가 0xCC로 초기화됩니다. strcpy는 문자열을 복사하는 명령어로 "all_new"를 a버퍼로 복사하게 됩니다. 그리고 제일 밑에 파일 닫는 부분도 추가해 주었습니다.
댓글 입력