fscanf()

숲사람·2022년 3월 16일
0

UNIX & C

목록 보기
1/12
post-thumbnail

File Stream

FILE *fp = stdin; //stdin으로 해도 되고 실제 file open을 해도됨
//FILE *fp = fopen("file.txt", "r");

1. fscanf 사용법

fscanf는 File스트림으로부터 서식대로 값을 저장하는 함수

char s[10];
int num;

fscanf(fp, "%s %d", s, &num);  //FILE 스트림 (여기선 stdin) 으로부터 서식 대로 값을 저장.
printf("%s -> %d\n", s, num);

https://dojang.io/mod/page/view.php?id=608

2. fscanf 의 서식문자열을 sprintf로 생성하기

sprintf 는 서식을 문자열로 저장하는 함수
sprintf(str, "%d", 30); char *str 에는 문자열 "30"이 저장됨.

char buf[50];
char fmp[10];
sprintf(fmp, "%%%ds", sizeof(buf) - 1);
fscanf(fp, fmp, buf);
printf("%s\n", buf);

https://jhnyang.tistory.com/314

3. fscanf 를 파일 끝까지 순차적으로 읽어들이기

char buf[50];
while (fscanf(fp, "%49s", buf) != EOF) // 파일스트림의 내용을 공백 단위로 buf[50] 에 갱신. 
        printf("%s\n", buf);

위 코드 컴파일해서 수행시 아래처럼 출력됨. 각 루프에서 buf의 문자열은 갱신되어있음.

$ echo "aa bb cc" | ./a.out
$ aa
$ bb
$ cc
profile
기록 & 정리 아카이브용

0개의 댓글