5 6 7 8 9
my String
f라는 FILE에 위 문자열이 있다.
위 문자열은 아래와같이 구성되어져있는 것이다.
5 6 7 8 9\n
my String
fgets는 \n까지 읽어낸다.
fscanf는 \n와 스페이스를 구분자로 보고 '\n 또는 스페이스' 다음부터, '\n 또는 스페이스' 전 까지 읽는다.
사용예제
file 내용
5 6 7 8 9
my String
char str[1000];
fgets(str, "%s", f);
// fgets가 \n까지 읽어내고
// str에는 \n를 제외한 "5 6 7 8 9" 까지 담기고 파일포인터는 다음줄의 m을 가리키고있다.
print("%s", str); //"5 6 7 8 9" 가 출력된다.
fscanf(f, "%s", str);
//fscanf가 my까지 읽어내고
//str에는 "my"까지 담기고 파일포인터는 y다음 스페이스바를 가리킨다.
printf("%s", str); // "my"가 출력된다.
fgets(str, "%s", f); //str에는 스페이스바를 포함해서 " String" 까지 읽어온다.
printf("%s", str); // " String"이 출력된다.
파일에
100
my string
위 문자열이 있다고 했을때
sscanf로 100을 읽고
fgets로 my string을 읽는 코드
int num;
char str[100];
sscanf(f, "%d", &num); //100까지 읽고 파일포인터는 \n를 가리킨다.
fgets(str, "%s", f); //\n를 읽어낸다.
fgets(str,"%s", f); //my string을 읽어낸다.
printf("%d", num); //100
printf("%s", str); //my string
'◼️C' 카테고리의 다른 글
[C] 구조체 배열에 색상 스펙트럼을 설정하기 (0) | 2024.03.11 |
---|---|
C언어 소수점의 자릿수 구하기 (0) | 2023.03.06 |
C언어 2차원 배열 동적 할당 (0) | 2020.01.21 |