getchar() 是處理螢幕上輸入的字元或整數(每次只讀取乙個),如果輸出用 %c 則輸出其原始資料,若用 %d 輸出對應的ascii碼。
char a[50];
t = 0;
a[t] = getchar();
printf ("%c",a[t]);
//上面是將單個字元賦值給 a
接下來舉個整數的例子
int a[50];
t = 0;
a[t] = getchar();
printf ("%d", a[t]);
輸入:7 輸出:55
如果你用 getchar() 後想輸出原始資料就需要減去'0'
,一般是針對於其ascii碼大於 48 的進行處理,也就是說一般是對於十進位制數進行處理,舉個例子吧3』 - 『0』 對應的ascll碼就是 51-48 ,結果是3
k = a[1] - '0';
printf ("%d",k);
:gets()
函式是從標準輸入中讀取一行到緩衝區中,直到eof
或者換行
,但是並不檢查溢位情況。
c語言中對於輸入整數而言,輸入的整數之間是沒有間隔的就直接儲存在了對應的記憶體區,若輸入的是1 2 3
則scanf
就會依次讀取1 2 3
,最後輸出的會是3
, 但是如此方式也會有它自己的用處。
使用while
迴圈從標準輸入或某個檔案中依次讀入乙個字元到緩衝區中,直到行尾或檔案結尾,或者遇到其他相關終止符
以上都可以配上迴圈使用,但是需要檢查溢位
c語言遇到的問題
我用二級指標做的這道題,不知道為什麼輸出為第一張圖的形式 但如果我把c getchar 改為scanf c c 則會輸出第二張圖所示的結果 include void main e dt z 0 t z 1e tdt 你可以找到更多關於的資訊latex數學表示式here.可以使用uml圖表進行渲染。m...
使用C語言遇到的幾個小問題
1.計算字元陣列的長度時 sizeof 會把 0 也算進去 strlen 不會 2.修改字串的值 char c aabc printf c n c 0 c 0 1 錯誤 無法直接修改值 儲存在字串常量區 charc 4 aabc printf c n c 0 c 0 1 只有做成字元陣列才可以乙個個...
C語言遇到的陣列溢位問題
今天寫了個判斷陣列中資料的最大值問題的 發現了乙個有趣的情況,陣列溢位值總是乙個 現附上今天寫的判斷陣列最大值的 define crt secure no warnings 1 include includeint main int max num 0 int i 0 for i 0 i sizeo...