Scanf一次请求两个字符串

时间:2012-12-13 22:44:46

标签: c string scanf printf

在这段代码中,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 "

会回复给我并保存到文件中。

1 个答案:

答案 0 :(得分:5)

删除scanf中的空格。

变化:

scanf("%s ",input);

为:

scanf("%s",input);

由于空间的原因,scanf会一直跳过空格字符,直到它读取的内容不是空格(在读取%s的一个字符串后)。