- 论坛徽章:
- 0
|
因为不知道属于哪类问题,只好这样命名,请斑竹见谅。
代码很简单:
- #include <stdio.h>;
- #include <ctype.h>;
- //------------------------------------------
- 01void main()
- 02{
- 03 char ch;
- 04 int i=1;
- 05 while(i){
- 06
- 07 do{
- 08 printf("(E) enter name\n");
- 09 printf("(R) report name\n");
- 10 printf("(Q) quit\n");
- 11 scanf("%c",&ch);
- 12 ch=toupper(ch);
- 13 }while(ch!='E' && ch!='R' && ch!='Q');
- 14
- 15 switch(ch){
- 16
- 17 case 'E': printf("enter name!\n");
- 18 break;
- 19 case 'R': printf("report name!\n");
- 20 break;
- 21 case 'Q': printf("quit\n");i=0;
- 22 }
- 23 }
- 24}
复制代码
但是运行结果很怪
- (E) enter name
- (R) report name
- (Q) quit
- e
- enter name!
- (E) enter name
- (R) report name
- (Q) quit
- (E) enter name
- (R) report name
- (Q) quit
复制代码
为什么会显示两遍?
我在第11行 "scanf" 的后面加了一个printf("%d======",ch);
结果如下:
- (E) enter name
- (R) report name
- (Q) quit
- e
- 101====================
- enter name!
- (E) enter name
- (R) report name
- (Q) quit
- 10====================
- (E) enter name
- (R) report name
- (Q) quit
复制代码
第二次输出前面那个10是怎么回事?我想不通.
这段代码在VC6.0和TC3上结果相同(WIN2K)[/quote] |
|