scanf() 함수란?
C 언어에서 scanf() 함수는 stdin(표준 입력)으로부터 형식화된 입력을 읽어 들이는 데 사용됩니다. 이 함수는 성공적으로 읽어 들인 항목의 개수를 반환하며, 입력 처리에 실패하면 음수 값(EOF)을 반환합니다.
C 언어에서 scanf() 함수의 기본 문법은 다음과 같습니다.
int scanf(const char *characters_set)
다음은 C 언어에서 scanf() 함수를 사용하는 예제입니다.
예제 코드
#include <stdio.h>
int main () {
char s[20];
printf("Enter a string : ");
scanf("%s", s);
printf("\nEntered string : %s\n", s);
return(0);
}
실행 결과
Enter a string : Peter! Entered string : Peter!
위 예제에서 사용자가 문자열을 입력하면 scanf()가 %s 서식 지정자를 통해 해당 문자열을 배열 s에 저장하고, 그대로 화면에 출력하는 것을 확인할 수 있습니다.
fscanf() 함수란?
fscanf() 함수는 지정된 스트림(파일 등)으로부터 형식화된 입력을 읽어 들이는 데 사용됩니다. 입력에 실패하면 0을 반환하고, 성공하면 읽어 들인 값을 반환합니다.
C 언어에서 fscanf() 함수의 기본 문법은 다음과 같습니다.
int fscanf(FILE *stream_name, const char *set_of_characters)
다음은 C 언어에서 fscanf() 함수를 사용하는 예제입니다.
예제 코드
#include <stdio.h>
#include <stdlib.h>
int main () {
char str1[10];
int year;
FILE * fp;
fp = fopen ("file.txt", "w+");
fputs("This is demo text!", fp);
rewind(fp);
fscanf(fp, "%s", str1);
printf("First word = \n%s\n", str1 );
fclose(fp);
return(0);
}
실행 결과
First word = This
위 예제에서는 먼저 file.txt 파일을 쓰기 모드(w+)로 연 뒤 문자열을 저장하고, rewind() 함수로 파일 포인터를 처음 위치로 되돌린 후 fscanf()로 첫 번째 단어만 읽어 출력합니다.
scanf()와 fscanf()의 주요 차이점
두 함수 모두 형식화된 입력을 읽는다는 점에서 유사하지만, 다음과 같은 차이가 있습니다.
scanf() : 표준 입력(stdin), 즉 사용자의 키보드 입력을 읽습니다.
fscanf() : fopen()으로 연 파일 등 지정된 입력 스트림에서 데이터를 읽습니다.