반응형
C, C++ 전체 링크
C, C++에서 FILE을 정수로 된 FILE을 읽어보자.
input.txt는 아래와 같다.
코드는 아래와 같다.
#include <stdio.h>
#define INPUT_FILE "input.txt"
int main(void)
{
FILE *fp = fopen(INPUT_FILE, "r");
if (fp == NULL)
{
printf("Wrong Input : %s\n", INPUT_FILE);
return 0;
}
int input;
while (fscanf(fp, "%d", &input) != EOF)
{
printf("%d\n", input);
}
return 0;
}
input.txt file을 define으로 정의해서 다른 코드에서도 관리하기 쉽도록 한다.
FILE pointer fp에 INPUT_FILE을 받는다. 파일을 읽기 때문에 read mode인 "r"로 설정한다.
fopen은 파일이 없는 경우 NULL을 return하므로 예외처리를 할 수 있다.
이제 fscanf로 file의 숫자를 하나씩 입력 받는다.
파일의 끝 End of File(-1)인 경우 fscanf는 -1을 return 한다.
따라서 while을 이용해 파일 끝까지 숫자를 받을 수 있다.
file mode에는 아래의 경우가 있다.
"r" : read, 읽기 전용으로 연다. 편집 불가.
"w" : write, 파일을 열어 편집하고, 새로 덮는다. 파일이 없다면 새로 만든다.
"a" : append, 파일의 뒤에서 부터 새로 붙인다. 파일이 없다면 새로 만든다.
"r+" : read+, 파일 읽고 쓰기가 모두 가능하다. 기존의 내용을 덮어쓴다.
"w+" : write+, 파일 읽고 쓰기가 모두 가능하다. 기존의 내용을 덮어 쓴다.
"a+" : append+, 파일 읽고 쓰기가 모두 가능하고, 파일의 뒤에서 부터 새로 붙인다.
그리고 rwa 뒤에 t/b를 붙여 옵션을 추가할 수도 있다.
(t : text 모드, b : binary 모드, default는 text)
반응형
'개발 > C, C++' 카테고리의 다른 글
scanf로 문자열과 공백 받기 (0) | 2021.03.16 |
---|---|
소수 판단 함수 (0) | 2021.03.14 |
유일한 수 두개 (0) | 2021.03.01 |
C, C++ - 최하위 / 최상위 비트 구하기 (Find MSB, LSB) (1) | 2021.03.01 |
유일한 수 (0) | 2021.03.01 |
댓글