70.6 연습문제: 파일에 문자열 쓰기
, 박 성훈님이 작성#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
char s1[20] = "안녕하세요.";
FILE* fp = fopen("hello.txt", "w");
fwrite(s1, sizeof(s1), 1, fp);
fclose(fp);
return 0;
}
에서
fwrite(s1,sizeof(s1),1,fp); 가 원래는 fwrite(s1,strlen(s1),1,fp);
인데 strlen(s1) 대신 sizeof(s1)을 사용하게 되면 나중에는 문제 가 생길까요?
Re: 70.6 연습문제: 파일에 문자열 쓰기
, 도장_ 관리자님이 작성strlen: 16 sizeof: 20
데이터가 있는 만큼만 저장하는 게 좋습니다. 쓰레기 값을 저장하고 읽는다면 결과를 제대로 저장하고 불러오지 못하는 프로그램이 될 것입니다.
메모장에 100바이트를 작성하고 저장했는데 120바이트를 저장하고 20바이트의 쓰레기 값을 읽어와서 메모장에 내가 작성한 100 바이트 + 알 수 없는 이상한 문자 20바이트가 함께 나온다고 상상해보세요.