[질문] fscanf(fd,"%*[^\n]"); 이게 무슨 뜻인지 좀 가르쳐 주세요~~^^;;

singing4u의 이미지

코드 분석중에
fscanf(fd,"%*[^\n]");
이런 코드를 발견 했습니다..
파일로 부터 읽는 것 같은데..
%*[^\n]
이것이 무엇을 의미하는지 모르겠습니다..

아시는 분 부탁드립니다..^^;;;

doldori의 이미지

*는 입력을 읽기는 읽되 어떤 변수에 저장하지 않고 건너뛰는 것입니다. 예를 들어

int i;
scanf("%*d%d", &i);

에서 "1 2"를 입력하면 1은 건너뛰고 i의 값은 2가 됩니다.

그리고 []로 묶인 포맷 지정자를 scanlist라고 부릅니다. 문자열을 입력랄 때
scanlist에 명시된 글자만을 입력으로 받겠다는 뜻입니다. 예를 들어

char number[10];
scanf("%[0123456789]", number);

에서 "123abc"를 입력하면 number는 "123"이 됩니다.
scanlist 안의 ^는 scanlist에 명시된 글자를 제외한 것만 입력하겠다는 뜻이고요.

그러니까 "%*[^\n]"은 end-of-line('\n')이 나오기 전까지 읽어서 버리겠다는 뜻입니다.