본문 바로가기

Study_C, C++/홍정모의 따라하며 배우는 C언어

[홍정모의 따라하며 배우는 C언어] 8.9 텍스트 파일 읽기

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가 이 프로그램이 해당 파일을 다 사용했다는 것을 알고 다른 프로그램이 그 파일에 접근할 수 있음

 

file을 만들지 않고 코드를 실행하면 위와같이 결과가 나옴

  • exited with code 1은 exit안의 1

exit 안에 1004를 넣으면 1004가 나옴

  • 보통 우리가 사용하는 return 0은 프로그램이 정상적으로 끝났다는 것을 OS에게 알림
  • 마찬가지로 실행이 잘못되었을 때는 오류가 있다는 사실을 알림

 

file stream임을 알 수 있음

 

  • my_file.txt라는 이름의 파일 만들기

소스 코드 창 우클릭 -> Open Containing Folder -> Project의 폴더에서 my_file.txt. 파일 생성

파일에 왼쪽과 같은 데이터를 입력하고 코드를 실행시키면 같은 데이터가 출력됨

 

while ((c = getc(file)) != EOF)
putchar(c);
  • 파일의 데이터가 위 코드를 통해 그대로 출력됨

 

  • 파일의 경로 문제 : 파일이 위의 경로에 있지 않으면 파일을 읽을 수 없음
    • exe 파일은 Debug 폴더에 생기지 않고 solution의 Debug 폴더에 생기는데, 이때 exe파일과 우리가 읽고자 하는 파일이 같은 경로에 위치한다면 문제없이 실행시킬 수 있음
  • 보통 파일이 vcx와 같이 있으면 문제 없이 읽어올 수 있음

exe 파일은 Debug 폴더에서 생기지 않고 솔루션의 Debug 폴더에 들어간다

 

 

 

 

 

 


https://www.inflearn.com/course/following-c/dashboard

 

홍정모의 따라하며 배우는 C언어 - 인프런 | 강의

'따배씨++'의 성원에 힘입어 새롭게 개발된 C 언어로 시작하는 프로그래밍 입문 강의입니다. '따배씨'와 함께 프로그래밍 인생을 업그레이드 해보세요., - 강의 소개 | 인프런...

www.inflearn.com