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() 代替,这样就可以了,而且简单。