반응형
파일에 텍스트 저장 및 읽기
사용자가 입력한 텍스트를 파일에 저장하고, 저장된 내용을 파일에서 읽어와 화면에 출력하는 프로그램을 작성
사용 개념:
- 파일 입출력(fopen, fprintf, fscanf, fgets, fclose)
- 문자열 입력 및 출력(scanf, printf)
풀이 방법
- 파일 열기:
- fopen 함수를 사용하여 파일을 쓰기 모드("w")로 열어 사용자가 입력한 텍스트를 저장
- 텍스트 입력받기:
- scanf나 fgets를 사용해 사용자로부터 텍스트를 입력받아 파일 쓰기
- 파일 닫기:
- 입력이 끝나면 fclose로 파일 닫기
- 파일 다시 열기:
- fopen을 읽기 모드("r")로 열어 파일에 저장된 내용 읽기
- 파일 내용 출력:
- fgets를 사용하여 파일 내용을 한 줄씩 읽어 화면 출력
- 파일 닫기:
- 읽기가 끝나면 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; // 프로그램이 정상 종료됨을 알립니다.
}
코드 설명
- 파일 포인터 선언:
- FILE *file;은 파일을 가리키는 포인터입니다. 파일을 열고 닫을 때 사용
- 파일 열기(쓰기 모드):
- fopen("example.txt", "w");는 "example.txt" 파일을 쓰기 모드로 엽니다. 파일이 없으면 새로 생성
- 파일 열기에 실패하면 NULL을 반환하므로 오류 메시지를 출력하고 프로그램을 종료
- 텍스트 입력받기:
- scanf(" %[^\n]", text);는 공백을 포함해 개행 전까지 텍스트를 입력받아 text 배열에 저장
- 텍스트 파일에 쓰기:
- fprintf(file, "%s", text);는 입력받은 text를 파일에 쓰기
- 파일 닫기:
- fclose(file);는 파일을 닫아 저장을 완료
- 파일 다시 열기(읽기 모드):
- fopen("example.txt", "r");는 파일을 읽기 모드로 열기
- 열기에 실패하면 NULL을 반환하므로 오류 메시지를 출력하고 프로그램을 종료
- 파일 내용 읽기 및 출력:
- fgets를 사용해 파일의 내용을 한 줄씩 읽어와 text 배열에 저장하고, printf로 출력
- 파일 닫기:
- fclose(file);로 파일을 닫아 읽기 작업 종
반응형
'프로그래밍 > C' 카테고리의 다른 글
[C언어-응용문제] 동적 메모리 할당을 사용한 배열 평균 구하기 (0) | 2024.11.11 |
---|---|
[C언어-응용문제] 학생 점수 관리 프로그램 (구조체 문제) (1) | 2024.11.09 |
[C언어-응용문제] 숫자의 합 구하기(for, while) (1) | 2024.11.08 |
[C언어-응용문제] 반복문을 사용한 구구단 출력 (3) | 2024.11.07 |
[C언어-응용문제] 간단한 계산기 프로그램 만들기 (5) | 2024.11.06 |