더북(TheBook)

앞에서 입력받은 내용을 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); ----------------------------------------- ➏ 파일 닫기

비밀 일기를 저장한 파일을 불러와 원래 있던 내용을 보여 준 다음, 추가로 내용을 더 입력받는 것까지 모두 처리했습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.