코드 분석중에 fscanf(fd,"%*[^\n]"); 이런 코드를 발견 했습니다.. 파일로 부터 읽는 것 같은데.. %*[^\n] 이것이 무엇을 의미하는지 모르겠습니다..
아시는 분 부탁드립니다..^^;;;
*는 입력을 읽기는 읽되 어떤 변수에 저장하지 않고 건너뛰는 것입니다. 예를 들어
int i; scanf("%*d%d", &i);
그리고 []로 묶인 포맷 지정자를 scanlist라고 부릅니다. 문자열을 입력랄 때 scanlist에 명시된 글자만을 입력으로 받겠다는 뜻입니다. 예를 들어
char number[10]; scanf("%[0123456789]", number);
그러니까 "%*[^\n]"은 end-of-line('\n')이 나오기 전까지 읽어서 버리겠다는 뜻입니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
*는 입력을 읽기는
*는 입력을 읽기는 읽되 어떤 변수에 저장하지 않고 건너뛰는 것입니다. 예를 들어
에서 "1 2"를 입력하면 1은 건너뛰고 i의 값은 2가 됩니다.
그리고 []로 묶인 포맷 지정자를 scanlist라고 부릅니다. 문자열을 입력랄 때
scanlist에 명시된 글자만을 입력으로 받겠다는 뜻입니다. 예를 들어
에서 "123abc"를 입력하면 number는 "123"이 됩니다.
scanlist 안의 ^는 scanlist에 명시된 글자를 제외한 것만 입력하겠다는 뜻이고요.
그러니까 "%*[^\n]"은 end-of-line('\n')이 나오기 전까지 읽어서 버리겠다는 뜻입니다.
댓글 달기