fscanf 로 값 긁어올시 정규표현식 부탁드립니다.

장종철의 이미지

10 : 학교
20 : 종이
30 : 땡땡땡
40 : 어서 모이자
50 :
60 : 선생님이 우리를

이런 텍스트 파일이 있습니다.

fscanf로 값을 가지고 와서 아래와 같이 변수에 넣을때 어떻게 가지고 와야 하나요?

key[0]=10, data[0]=학교
key[1]=20, data[1]=종이
key[2]=30, data[2]=땡땡땡
key[3]=40, data[3]=어서 모이자
key[4]=50, data[4]
key[5]=60, data[5]=선생님이 우리를

fscanf(data.txt, "%s : %[^\n]"), key[i], data[i]);
이렇게 하니까..

10 : 학교
20 : 종이
30 : 땡땡땡
40 : 어서 모이자
50 : 60 : 선생님이 우리를


이렇게 값이 나오는데.....
값이 없는 곳에는 값을 비워 둬야 하거던요..
방법 없을까요...

익명 사용자의 이미지

저는 종철님과 같은 상황에서 fgets와 같은 라인별로 읽는 함수를 사용하여, 한 라인을 buffer에 저장한후, sscanf를 사용합니다.

또, sscanf(buf, "%d", %f", &i, &f);와 같은 식으로 호출하는 경우, i,와 f에 값이 잘 들어가면 2가 리턴되고, 하나만 들어가면, 1, 하나도 안들어 가면 0이 리되므로 결과값을 확인해 보는것도 좋습니다.
^^