2008. 11. 2. 16:26

fscanf(), fgets() 함수의 차이점


153
사과 한 상자
12000
--test.txt---

fscanf(file,"%s %s %d", code , name , &price);

결과 : code=153 , name=사과 , price='한'이라는 값이 decimal값으로 저장

"사과 한 상자"는 스페이스 문자로 떨어져있기 때문에 fscanf()함수는 이들을 각각 별도의 데이터로 간주한다.
이것은 scanf()함수의 특징과 같다. ( 스페이스 , 엔터 를 별도의 데이터로 간주 )

따라서, 스페이스 문자이건 어떤 문자이건 모두 읽어들이고 단지 엔터 문자만이 데이터를 구분하기 위해선
fgets() 함수를 사용한다.

fgets( 문자열 변수 , 글자 수 , 파일 포인터 );
fgets(name, 100 , file);