2013-09-30 4 views
0

"% ...."여러 개의 쓰기 작업을 할 수있는 적절한 스타일을 찾을 수 없습니다. 그것은 또한 수 ... 그것은 1 ~ 3 자리가 될 수 있으며, 쉼표는 그 사이 번호 같은 줄에fscanf 여러 값 - 작동하지 않을 수 있습니다.

913,91,011,3 
391,391 
04,111 

940,1,999 

: 내가 좋아하는 쉼표 ,로 구분 자리의 블록으로 포맷 파일에서 읽고 있어요 아무것도 없어. 나는이 같은 각 행을 읽으려고 : 가정

res=fscanf(users,"%[^,\n]c%c",lockid,&temp2); 

나에게

lockid=913 (its char*) 
temp2=',' or '\n' (its char) 
and res=2 (int) 

을 가지고하지만 lockid=913temp2 전혀 변경하지 않은 가지고 (알 수없는 남아)와 res = 1.

나는 그것을 분리하는 경우 : 내가 원하는 걸 얻었지만 ... 나에게 2 개 라인을했다

res1=fscanf(users,"%[^,\n]3s",lockid); 
res2=fscanf(users,"%c",temp1); 

왜 작동하지 않는 이유는 무엇입니까? 내 fscanf에 모두 문제가 발생했습니다. 너는 그것을 쓰는 올바른 방법이 무엇인지 내게 말해 줄 수 있니? 나의 선생님은 각자 사이에 아무것도 없어야한다고 말했다. % 나는 인터넷 사람들이 사이 공간을 사용하는 것을 보았다. 그래서 나는 그것을 시도했지만, 여전히 아무것도하지 않았다. 또한 fscanf(fp,"%d""%d",num1,num2)을 시도했지만 같은 오류 : num2 두 번째 %d ...

그것이 될 수있는이 컴파일 방법 또는 무언가를 수집하지 않습니다? Visual Studio 최신 버전과 C로 작성한 버전을 사용하고 있습니다.

미리 감사드립니다!

+0

정수와 정수를 구분하여 읽고 싶습니다. 나 맞아? –

답변

0

나는

int num; 
char separaotor; 
fscanf(fp, "%d%c", &num, &separator); 

을 시도하고 나는

num = 913
separator = ,

이 당신이 뭘 하려는지가있어?

+0

답장을 보내 주셔서 감사합니다.하지만 '% s'(으)로 입력해야합니다. \ n '044'과 같은 숫자가 아닌 경우 44입니다. –

+0

% d로 읽은 다음 결과를 문자열로 변환하면 작동합니까? –

관련 문제