C如何使scanf在空白处停止



当scanf发现空格/空白时,我需要停止它。

对于现有

如果我输入"E E",我只需要1个"E",所以它必须停在空格/空白处。

char end[] = "E";
char end1[] = "End";
char info[] = "";
while(run) {
 scanf("%s", &info);
 ...
 else if(strcmp(info, end) == 0 || strcmp(info, end1) == 0) {
    end_of_turn();
 }
 ...
}

现在这里的问题是,如果我键入"E E",它将运行两次"end_of_turn"。

有人知道为什么会这样吗?

编辑:

好吧,我不能打破while循环,因为那样会停止程序。

使用break来突破while循环?调用end_of_turn()

如果不想脱离循环,也可以使用goto语句。

您还可以从输入流中获取所有字符,然后使用以下代码丢弃它们:while(getchar() != 'n') ;

似乎可以使用%[格式说明符来只匹配某些字符。要排除空格,我认为您应该使用%[^ ]

遍历存储在info中的字符串,搜索空间字符' ',如果找到,则将字符串的其余部分设置为

相关内容

  • 没有找到相关文章

最新更新