프로그래밍/C

[C언어-응용문제] 파일에 텍스트 저장 및 읽기

록스타★ 2024. 11. 10. 11:29
반응형

파일에 텍스트 저장 및 읽기

사용자가 입력한 텍스트를 파일에 저장하고, 저장된 내용을 파일에서 읽어와 화면에 출력하는 프로그램을 작성

 

사용 개념:

  • 파일 입출력(fopen, fprintf, fscanf, fgets, fclose)
  • 문자열 입력 및 출력(scanf, printf)

풀이 방법

 

  1. 파일 열기:
    • fopen 함수를 사용하여 파일을 쓰기 모드("w")로 열어 사용자가 입력한 텍스트를 저장
  2. 텍스트 입력받기:
    • scanf나 fgets를 사용해 사용자로부터 텍스트를 입력받아 파일 쓰기
  3. 파일 닫기:
    • 입력이 끝나면 fclose로 파일 닫기
  4. 파일 다시 열기:
    • fopen을 읽기 모드("r")로 열어 파일에 저장된 내용 읽기
  5. 파일 내용 출력:
    • fgets를 사용하여 파일 내용을 한 줄씩 읽어 화면 출력
  6. 파일 닫기:
    • 읽기가 끝나면 fclose로 파일을 닫기

 


코드 설명

#include <stdio.h>

int main() {
    FILE *file;  // 파일 포인터 선언
    char text[100];  // 사용자 입력을 저장할 배열

    // 1. 파일을 쓰기 모드로 엽니다.
    file = fopen("example.txt", "w");
    if (file == NULL) {
        printf("파일을 열 수 없습니다.\n");
        return 1;  // 오류가 발생하면 프로그램 종료
    }

    // 2. 사용자로부터 텍스트를 입력받습니다.
    printf("저장할 텍스트를 입력하세요: ");
    scanf(" %[^\n]", text);  // 개행 전까지 입력받기

    // 3. 입력받은 텍스트를 파일에 씁니다.
    fprintf(file, "%s", text);

    // 4. 파일을 닫습니다.
    fclose(file);

    // 5. 파일을 읽기 모드로 엽니다.
    file = fopen("example.txt", "r");
    if (file == NULL) {
        printf("파일을 열 수 없습니다.\n");
        return 1;  // 오류가 발생하면 프로그램 종료
    }

    // 6. 파일 내용을 읽어 화면에 출력합니다.
    printf("파일에서 읽은 내용: ");
    while (fgets(text, sizeof(text), file) != NULL) {
        printf("%s", text);
    }

    // 7. 파일을 닫습니다.
    fclose(file);

    return 0;  // 프로그램이 정상 종료됨을 알립니다.
}

 


코드 설명

  1. 파일 포인터 선언:
    • FILE *file;은 파일을 가리키는 포인터입니다. 파일을 열고 닫을 때 사용
  2. 파일 열기(쓰기 모드):
    • fopen("example.txt", "w");는 "example.txt" 파일을 쓰기 모드로 엽니다. 파일이 없으면 새로 생성
    • 파일 열기에 실패하면 NULL을 반환하므로 오류 메시지를 출력하고 프로그램을 종료
  3. 텍스트 입력받기:
    • scanf(" %[^\n]", text);는 공백을 포함해 개행 전까지 텍스트를 입력받아 text 배열에 저장
  4. 텍스트 파일에 쓰기:
    • fprintf(file, "%s", text);는 입력받은 text를 파일에 쓰기
  5. 파일 닫기:
    • fclose(file);는 파일을 닫아 저장을 완료
  6. 파일 다시 열기(읽기 모드):
    • fopen("example.txt", "r");는 파일을 읽기 모드로 열기
    • 열기에 실패하면 NULL을 반환하므로 오류 메시지를 출력하고 프로그램을 종료
  7. 파일 내용 읽기 및 출력:
    • fgets를 사용해 파일의 내용을 한 줄씩 읽어와 text 배열에 저장하고, printf로 출력
  8. 파일 닫기:
    • fclose(file);로 파일을 닫아 읽기 작업 종
반응형