在您的代码中,当进入'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'函数忽略前一个换行符。现在,您应该能够正确读取输入的字符并根据其进行相应的输出。

C语言中的scanf_s函数输入字符问题解析

原文地址: https://www.cveoy.top/t/topic/pe1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录