C语言中的scanf_s函数输入字符问题解析
在您的代码中,当进入'case 5'时,使用了'scanf_s'函数来读取一个字符。然而,'scanf_s'函数在读取字符之前会留下一个换行符在输入缓冲区中。因此,当您执行'scanf_s'函数后,它会立即读取该换行符并将其分配给'c1'变量,而不等待您输入字符。
为了解决这个问题,您可以在'scanf_s'函数之前添加一个空白字符(如空格),以跳过前一个换行符。以下是修正后的代码:
case 5:
{
char c1;
scanf_s(" %c", &c1, 1);
if (c1 == 'q')
printf("No");
else if (c1 == 'k')
printf("No");
else
printf("Yes");
break;
}
通过添加空白字符' " %c" ',我们告诉'scanf_s'函数忽略前一个换行符。现在,您应该能够正确读取输入的字符并根据其进行相应的输出。
原文地址: https://www.cveoy.top/t/topic/pe1 著作权归作者所有。请勿转载和采集!