c语言 - scanf 直到我按两次回车键才接受输入



scanf不会被跳过。它等待我输入输入,但我必须输入值并点击回车两次(第二次输入正确保存(。

int yes(void)
{
int yes, rc, isValid;
char answer, nl = 'a';
do {
clearKeyboard();
rc = scanf(" %c%c", &answer, &nl);
if (nl == 'n')  { //|| rc != 2
if ((answer == 'y') || answer == 'Y') {
yes = 1;
isValid = 1;
}
else if ((answer == 'n') || answer == 'N') {
yes = 0;
isValid = 1;
}
else {
printf("*** INVALID ENTRY *** <Only (Y)es or (N)o are acceptable>: ");
isValid = 0;
clearKeyboard();
}
}
else {
printf("*** INVALID ENTRY *** <Only (Y)es or (N)o are acceptable>: ");
isValid = 0;
clearKeyboard();
}
} while (!isValid);
return yes;
}

我建议不要使用scanf,但既然您是:nl的用途是什么?如果您删除scanf中的第二个%c,您将获得answer,并且只需要输入一次。

最新更新