- 論壇徽章:
- 0
|
因?yàn)椴恢缹儆谀念?lèi)問(wèn)題,只好這樣命名,請(qǐng)斑竹見(jiàn)諒。
代碼很簡(jiǎn)單:
- #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}
復(fù)制代碼
但是運(yùn)行結(jié)果很怪
- (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
復(fù)制代碼
為什么會(huì)顯示兩遍?
我在第11行 "scanf" 的后面加了一個(gè)printf("%d======",ch);
結(jié)果如下:
- (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
復(fù)制代碼
第二次輸出前面那個(gè)10是怎么回事?我想不通.
這段代碼在VC6.0和TC3上結(jié)果相同(WIN2K)[/quote] |
|