- 鐵幣
- 1626 元
- 文章
- 1976 篇
- 聲望
- 747 枚
- 上次登入
- 15-1-17
- 精華
- 13
- 註冊時間
- 04-9-25
- UID
- 53390
|
25鐵幣
getchar輸出,一次一個字元,最後一個是什麼字元?
#include<stdio.h>
#include<stdlib.h>
main(){
char a;
do {
a = getchar();
printf("%c%d " , a ,sizeof(a));
}while(a != 'e');
system("pause");
}
這是一個輸入字串的程式
字串中遇到e就會停止
螢幕上會依序顯示出每個字元,並且在字元後面顯示出該字的記憶體大小(byte)
執行結果如下
magical
m1 a1 g1 i1 c1 l1
1
請問最後面那個一是什麼?
如果是\n字元的話,為什麼它會再下一行出現?
有人教我使用ACSII碼看看
所以我改成
- #include<stdio.h>
- #include<stdlib.h>
- main(){
- char a;
- do {
- a = getchar();
- printf("%c%x%d " , a , a ,sizeof(a));
-
- }while(a != 'e');
- system("pause");
- }
複製代碼
結果如下
- magical
- m6d1 a611 g671 i691 c631 a611 l6c1
- a1
複製代碼
是a1耶,不過這個代表什麼意思= =?
而且最後一個字原因該是什麼東西才對?
會是\n?
還是\0?
[ 本文最後由 magicalloveshe 於 07-7-12 12:53 AM 編輯 ] |
最佳解答
傲月光希 檢視完整內容
為什麼會這樣?
我們要輸入字元時,輸入完畢後一定都會按ENTER
ENTER這個鍵在程式中有兩種涵義
第一個就是將輸入的字元存到變數中,第二就是將剩下的字元存在暫存區
當輸入完一個字元時,按一下ENTER,其實這個動作不只是只有你輸入的那個字,還有換行字元\n
因為迴圈的關係,當第一次輸入完m時,enter會將m存到變數a裡,然後將\n存到暫存區
經過迴圈之後,又回到要輸入的地方
這時候,變數a會自動的讀取到\n這個換行字元,並 ...
|