【发布时间】:2016-10-08 16:14:47
【问题描述】:
这个值的程序: ABCDEF 一开始没问题
但是当你输入一个带有空格的值时,比如: ABC DEF 程序运行错误!!!! while 循环第二次忽略 scanf 我做错了什么?!
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
int main(){
bool checkSrc = false;
bool checkDst = false;
while (!checkSrc && !checkDst)
{
char ins[10];
printf("White Player : ");
scanf("%s",&ins);
}
}
【问题讨论】:
-
scanf格式"%s"读取 空格分隔“单词”。 -
@user3121023 是的,尽管还需要检查
ins[strlen(ins)-1]处的'\n'字符。如果不存在,则缓冲区太小,输入行上剩余未读字符。如果它在那里,则缓冲区足够大,您可以对字符串进行进一步操作,例如去除前导和尾随空白字符,包括最后的换行符。