C

[C] 파일입출력 fgetc fgets

ryancha9 2019. 12. 3. 01:22

1. 문자열을 하나씩 읽어서 콘솔창에 출력하기

#include <stdio.h>
int main(){
FILE *pt = fopen("abc.txt", "rt");
int ch; // fgetc는 반환형이 int형이기 때문에 int형으로 선언해줌

if(pt == NULL){
printf("파일열리지 않음");
return -1;
}
while((ch= fgetc(pt)) != EOF){ // fgetc는 파일 끝에 EOF를 반환한다.
printf("%c", ch); // 메모장에서 받은 문자를 ch에 저장하고 ch는 다시 문자로 변환해서 출력한다.
}
fclose(pt);
return 0;
}

// 답 cccxxx
// putchar(ch)로 출력해도 되지만 printf가 훨씬 실용적이다.

2. 문자열을 한줄씩 읽어서 콘솔창에 출력하기

#include <stdio.h>
int main(){
FILE *pt = fopen("abc.txt", "rt");
char ch[30]; // fgets는 반환형이 char*이다.
if(pt == NULL){ // fopen은 파일이 없다면 NULL을 반환한다.
printf("파일열리지 않음");
return -1;
}
while(fgets(ch, sizeof(ch), pt) != NULL){ // fgets는 파일 끝에 NULL을 반환한다.
printf("%s", ch);
}
fclose(pt);
return 0;
}

// 답 cccxxx
// 한줄씩 읽기 때문에 count를 하면 1이 나올 것이다.
// 엔터가 나오기 전까지 읽는다.