技術討論區 > C/C++程式設計討論區

請問變數char讀入整數的問題

(1/1)

qui:
請問以下程式:

--- 代碼: ---#include <stdio.h>
int main(void) {
char a, b;

scanf("%d", &a);
printf("%d\n", a);

scanf("%d", &b);
printf("%d, %d\n", a, b);

return 0;
}

--- 程式碼結尾 ---

當我輸入1 1的時候,發現輸出的結果變成0 1
用記憶體工具看了一下,發現輸入b的時候會把a原本的值覆蓋過去
想請教有沒有能夠輸入一個整數、存到一個字元變數之中,又不會影響到其他記憶體的方法? ???

謝謝! :)

elleryq:
1. 應該用 int a, b;

--- 代碼: ---int i=0;
scanf("%d\n", &i);

--- 程式碼結尾 ---

2. 可以用轉型把 int 塞到 char 裡,例如

--- 代碼: ---char c;
int i=1;
c = (char)i;
printf("0x%02x\n", c);

--- 程式碼結尾 ---

zelda:
這算是溢位問題了吧
原po宣告的變數只佔用1byte
但是存進去是用4byte

從節省記憶體空間觀點來看
我是想不到有什麼解法啦

話說一開始,我還看不出問題點,我還太嫩了 :-[

導覽

[0] 文章列表

前往完整版本