亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
一個運行結(jié)果,怎么也想不通。請朋友們指教
[打印本頁]
作者:
alarum
時間:
2004-08-10 10:07
標(biāo)題:
一個運行結(jié)果,怎么也想不通。請朋友們指教
因為不知道屬于哪類問題,只好這樣命名,請斑竹見諒。
代碼很簡單:
#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ù)制代碼
但是運行結(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ù)制代碼
為什么會顯示兩遍?
我在第11行 "scanf" 的后面加了一個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ù)制代碼
第二次輸出前面那個10是怎么回事?我想不通.
這段代碼在VC6.0和TC3上結(jié)果相同(WIN2K)[/quote]
作者:
kj501
時間:
2004-08-10 10:37
標(biāo)題:
一個運行結(jié)果,怎么也想不通。請朋友們指教
很正常,輸入的回車也是一個字符嘛。
作者:
alarum
時間:
2004-08-10 11:50
標(biāo)題:
一個運行結(jié)果,怎么也想不通。請朋友們指教
ASIC碼前幾個值的含義我忘了。如果如樓上所說的話,這個回車是很可惡的。如果寫兩個scanf就會陷入死循環(huán)。對于這個例子當(dāng)然是無所謂了,這只是個簡化的程序。可有時候他會影響程序的輸入的,有什么辦法避免這樣嗎?
作者:
lchhcllch
時間:
2004-08-10 14:51
標(biāo)題:
一個運行結(jié)果,怎么也想不通。請朋友們指教
在scanf()后面加一行:
fflush(stdin);
就OK了!
作者:
whyglinux
時間:
2004-08-11 03:38
標(biāo)題:
一個運行結(jié)果,怎么也想不通。請朋友們指教
>;>; 在scanf()后面加一行:
>;>; fflush(stdin);
>;>; 就OK了!
上述回答不盡正確。請參照這個帖子的說明:
http://www.72891.cn/forum/v ... t=whyglinux#2335679
作者:
alarum
時間:
2004-08-11 09:19
標(biāo)題:
一個運行結(jié)果,怎么也想不通。請朋友們指教
感謝大家的幫助,問題解決。
歡迎光臨 Chinaunix (http://www.72891.cn/)
Powered by Discuz! X3.2