技術討論區 > 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] 文章列表
前往完整版本