➊ 앞에서 입력받은 내용을 contents 배열에 저장했습니다. 이때 사용자가 입력한 내용이 ‘EXIT’면 프로그램을 끝내야 하므로 이 부분을 if 문으로 처리합니다. 문자열을 비교하므로 strcmp()함수를 사용합니다. contents 배열에 저장된 값과 ‘EXIT’ 문자열을 비교해 반환하는 값이 0이면 두 문자열이 같다는 뜻이므로 if 문 안의 내용을 수행합니다.
➋ if 문 안에서 ‘비밀 일기 입력을 종료합니다.’라는 안내 문구를 출력합니다.
➌ break 문으로 while 문을 빠져나오면 일기 쓰기가 종료됩니다.
➍ 사용자가 입력한 내용이 ‘EXIT’가 아니면 fputs()함수로 contents 배열에 저장된 내용을 파일 포인터 file이 가리키는 파일에 저장합니다.
➎ 앞에서 입력한 내용 중에서 줄바꿈한 부분을 getchar()함수로 없애버렸습니다. 그래서 fputs()함수로 file이 가리키는 파일에 임의로 줄바꿈 문자를 추가합니다.
➏ 입력한 내용을 파일에 모두 저장하면 fclose()함수로 파일을 닫습니다.
10.4 프로젝트.c
while (1) {
scanf("%[^\n]", contents);
getchar();
if (strcmp(contents, "EXIT") == 0) { -------------- ➊ 입력값과 ‘EXIT’ 문자열 비교
printf("비밀 일기 입력을 종료합니다.\n\n"); --- ➋ 안내 문구
break; ---------------------------------------- ➌ while 문 탈출, 일기 쓰기 종료
}
fputs(contents, file); ---------------------------- ➍ 입력한 내용 파일 쓰기
fputs("\n", file); -------------------------------- ➎ 줄바꿈 문자를 파일에 추가
}
fclose(file); ----------------------------------------- ➏ 파일 닫기
비밀 일기를 저장한 파일을 불러와 원래 있던 내용을 보여 준 다음, 추가로 내용을 더 입력받는 것까지 모두 처리했습니다.