FILE *fp = stdin; //stdin으로 해도 되고 실제 file open을 해도됨
//FILE *fp = fopen("file.txt", "r");
fscanf
는 File스트림으로부터 서식대로 값을 저장하는 함수
char s[10];
int num;
fscanf(fp, "%s %d", s, &num); //FILE 스트림 (여기선 stdin) 으로부터 서식 대로 값을 저장.
printf("%s -> %d\n", s, num);
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);
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