2012-12-13 3 views
4

이 코드 세그먼트에서 scanf가 두 번 요청하고 있는데 무엇이 그렇게 할 수 있는지 확신 할 수 없습니다.Scanf가 한 번에 두 개의 문자열을 요청하고 있습니다.

int t; 
for(t = 0;t<5;t++) 
{ 
    //scanf requests twice for some reason 
    scanf("%s ",input); 
    fprintf(fp,"%s ", input); 
    printf("%d Word(s)\n", (t+2)); 
} 

출력이 은

"hello" 
"world" 
1 Word(s) 
"how" 
2 Word(s) 
"are" 
3 Word(s) 
"you" 
4 Word(s) 
"lostword" 
5 Word(s) 

그리고

"hello world how are you " 

다시 나에게 주어진 및 파일에 저장됩니다 (따옴표 단어는 사용자가 입력됩니다).

+0

실제 * 코드 또는 근사치입니까? –

+1

'입력 '이란 무엇입니까? – squiguy

+0

이것은 내 코드의 발췌이며 입력은 char 배열입니다. – 1amnick

답변

5

scanf에서 공백을 제거하십시오.

변경 :

scanf("%s ",input); 

에 :

scanf("%s",input); 

인해 공간은, scanf와는 (%s에 대해 하나의 문자열을 읽은 후) 공백없는 무언가를 읽을 때까지 공백 문자를 건너 뛰는 유지합니다.

+0

감사합니다. – 1amnick

관련 문제