關於字元型char變數

2022-09-01 05:12:08 字數 657 閱讀 7168

寫程式時,意外發現個很不容易察覺問題出在哪的問題的

scanf("

%c",&ch);

scanf("%c

",&c);

printf(

"ch:%c\n

",ch);

printf(

"c:%c\n

",c);

如果輸入是:a b

那麼輸出會是:ch:a

c:問題出在哪?如果將**改為:

scanf("

%c",&ch);

scanf("%c

",&c);

printf(

"ch:%c\n

",ch);

printf("

c:%d\n

",c);//輸出型別由%c,換為%d

同樣的輸入,輸出是:ch:a

c:32

為什麼是32?!?!因為空格space的ascii值是32

可見char型變數能接受包括空格、回車在內的各種字元,並且scanf()函式也能處理。

那麼,如何處理呢?方法就是:

在兩個scanf()函式之間加入fflush(stdin)函式,以清除輸入快取。

這是字元型變數乙個很容易忽視的小問題,以後一定要注意。

關於char型變數的運算及其他

專案中遇到的問題,將一幅影象二值化 0x00 黑色,0xff 白色 為判斷影象邊緣,需要判斷相鄰兩個畫素是否相反,影象的資料是uchar型的,開始 如下 for int j 1 jwidth j h count始終為0,也就是 if tmp data i step j 1 判斷永遠為假,列印出所有影...

c 關於char型變數與字串位址的輸出

在c裡面如果指標是乙個基本數值型 int foalt long等,如果輸出裡有 cout ptr endl 其中ptr是指標的名,則輸出的值是指標的位址,如果是char char指標 則輸出的是char指標的值。int i 97 char c a cout line 1 i 我想,對於line 1的...

關於C 中char 型變數的位址輸出

在剛開始學習c c 過程中,我們希望輸出各個變數的位址來窺探一些我們 百思不得其解 的現象,例如搞清函式堆疊相關的程式內部秘密。先看下面示例 將原始碼中 修改為 我們看到同樣作為char型的變數m char2輸出位址正常,修改為 為什麼會出現這樣現象,字串是以空終止符 0 結尾的字元陣列,通過字串中...