【发布时间】:2013-07-14 06:29:40
【问题描述】:
当我遇到这个时,我正在执行一些程序。
#include<stdio.h>
void main()
{
char z;
do
{
printf("1st line\n");
printf("2nd line\n");
scanf("%c",&z);
switch(z)
{
case 'a':printf("this is case a\n");
break;
case 'b':printf("this is case b\n");
break;
case 'c':printf("Exit\n");
return;
break;
default:
printf("this is default\n");
break;
}
}while(1);
}
我第一次输入时,输出是正确的。但是在给出第一个输入并且第二次循环开始之后, scanf 语句根本不会执行。 printf 语句虽然被执行,但也是默认情况。
第一行
第二行
b
这是案例b
第一行
第二行
这是默认的
第一行
第二行
【问题讨论】:
标签: c scanf undefined-behavior