728x90
8.9 텍스트 파일 읽기
- 파일의 데이터를 읽어들이는 방법과 그 때 EOF의 활용법
#pragma warning (disable:4996)
#include <stdio.h>
#include <stdlib.h> // exit() 사용을 위한 library
main()
{
int c;
FILE* file = NULL; // file이라는 포인터 변수를 선언
char file_name[] = "my_file.txt"; // 파일의 format이 text 파일.
file = fopen(file_name, "r"); // 파일의 스트림을 염
if (file == NULL) { // 파일을 열지 못하였을 때 NULL이 들어감
printf("Failed to open file.\n");
exit(1); // 파일을 여는데 실패했다고 알림. 그리고 프로그램 자체를 강제로 종료
}
// EOF를 만날 때 까지 file 스트림으로부터 한글자씩 문자를 읽어들이고 출력함
while ((c = getc(file)) != EOF)
putchar(c);
fclose(file); // 파일의 스트림을 닫음
return 0;
}
- 변수 'file' 에는 파일을 읽어들이는 스트림을 다룰 수 있는 정보가 저장됨
- 파일을 읽어들일 때는 ASCII code로 문서를 저장하거나 ASCII code로 저장된 문서를 가져오거나 binary 데이터를 읽고 쓰기도 함
- fopen (file open)은 파일의 스트림을 열어 파일로부터 데이터를 읽어오거나 저장할 수 있는 통로를 열어줌
- "w"는 파일에 데이터를 저장할 때 사용
- "r" 은 파일에 저장된 데이터를 읽어들일 때 사용
- 작업 종료시에는 fclose (file close)를 이용하여 파일의 스트림을 닫아줘야 함. 그래야 OS가 이 프로그램이 해당 파일을 다 사용했다는 것을 알고 다른 프로그램이 그 파일에 접근할 수 있음
- exited with code 1은 exit안의 1
- 보통 우리가 사용하는 return 0은 프로그램이 정상적으로 끝났다는 것을 OS에게 알림
- 마찬가지로 실행이 잘못되었을 때는 오류가 있다는 사실을 알림
- my_file.txt라는 이름의 파일 만들기
소스 코드 창 우클릭 -> Open Containing Folder -> Project의 폴더에서 my_file.txt. 파일 생성
while ((c = getc(file)) != EOF)
putchar(c);
- 파일의 데이터가 위 코드를 통해 그대로 출력됨
- 파일의 경로 문제 : 파일이 위의 경로에 있지 않으면 파일을 읽을 수 없음
- exe 파일은 Debug 폴더에 생기지 않고 solution의 Debug 폴더에 생기는데, 이때 exe파일과 우리가 읽고자 하는 파일이 같은 경로에 위치한다면 문제없이 실행시킬 수 있음
- 보통 파일이 vcx와 같이 있으면 문제 없이 읽어올 수 있음
https://www.inflearn.com/course/following-c/dashboard
'Study_C, C++ > 홍정모의 따라하며 배우는 C언어' 카테고리의 다른 글
[홍정모의 따라하며 배우는 C언어] 9.3 함수의 자료형과 반환값 (0) | 2024.06.17 |
---|---|
[홍정모의 따라하며 배우는 C언어] 9.1 함수가 필요할 때 ~ 9.2 함수의 프로토타입 (0) | 2022.05.29 |
[홍정모의 따라하며 배우는 C언어] 8.8 메뉴 만들기 예제 (0) | 2022.03.19 |
[홍정모의 따라하며 배우는 C언어] 8.7 입력 스트림과 숫자 (0) | 2022.03.07 |
[홍정모의 따라하며 배우는 C언어] 8.6 입력 확인하기 (0) | 2022.03.06 |