2012-12-13 74 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

這是我的代碼的摘錄和輸入是一個字符數組。 – 1amnick

回答

5

刪除scanf中的空格。

變化:

scanf("%s ",input); 

到:

scanf("%s",input); 

由於空間和scanf函數,保持跳過空格字符,直到它(在讀一個字符串%s)讀的東西,這不是一個空白。

+0

它的工作表示感謝! – 1amnick