C语言,输入星期首字母输出星期名,请问这小程序哪里错了,

C语言,输入星期首字母输出星期名,请问这小程序哪里错了,

问题描述:

输入s或t,程序提示输入下一个字母
输入下一个字母后,程序没有显示结果就退出了

#include
int main(void)
{
puts("enter a letter");
char ch;
ch = getchar();
getchar();
switch (ch) {
case 'm':puts("monday");
break;
case 't':puts("enter next letter");
scanf_s("%c",&ch);
if (ch == 'u')
puts("tuesday");
if (ch == 'h')
puts("thursday");
break;
case 'w':puts("wednsday");
break;
case 'f':puts("friday");
break;
case 's':puts("enter next letter");
scanf_s("%c", &ch);
if (ch == 'a')
puts("saturday");
if (ch == 'u')
puts("sunday");
break;
}
return 0;
}

将scanf_s("%c",&ch);换成ch = getchar();就没有ok了

是不是要空输入缓冲区呢?

如果给你有帮助,请采纳我的答案,谢谢!

这个比较简单,好好搞,多调试就好了

scanfs中必须要有第三个接受长度参数保证函数安全,所以可以把scanfs用ch=getchar() 代替,这样就可以了,而且简单。