当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
中的字符串,搜索空间字符' '
,如果找到,则将字符串的其余部分设置为