getchar和scanf的區別
阿新 • • 發佈:2018-12-23
scanf可以一次按照設定的輸入格式輸入多個變數資料.如
int d,
float f,
char str[20],
如char ch;
ch=getchar();輸入abc\r(回車)
ch=a;
用在迴圈時也要等有回車鍵時才接收.
char ch;
while((ch=getchar())!='q'){
printf("%c ",ch);
這樣你可以輸入很多字元後再按回車.
不用一個個按回輸出,還是全部一起輸出到螢幕
int d,
float f,
char str[20],
scanf("%d%f%s",d,f,str);
例: 使用 scanf 輸入 42
scanf()中使用%c說明符,該函式將只讀取字元4 並將其儲存在一個char型別的變數中
如果使用%s說明符,該函式會讀取兩個字元,即字元4和字元2,並將它們儲存在一個字串中。
如果使用%d說明符,則scanf 讀取同樣的兩個字元,但是隨後它會繼續計算與它們的相應的整數值為4*10+2 得到 42;
然後將該整數的二進位制表示儲存在一個int變數中,
如果使用%f說明符 則scanf()讀取這兩個字元 計算它們對應的數值 42,然後以內部的浮點表述該值,並將結果儲存在一個float變數中
簡而言之 輸入由字元組成,scanf可以將輸入裝換成整數或浮點值。使用%d或%f這樣的說明符能限制可接受的輸入的字元型別,
但是getchar()和使用%c的scanf()接受同樣的任何字元;
如char ch;
ch=getchar();輸入abc\r(回車)
ch=a;
用在迴圈時也要等有回車鍵時才接收.
char ch;
while((ch=getchar())!='q'){
printf("%c ",ch);
這樣你可以輸入很多字元後再按回車.
不用一個個按回輸出,還是全部一起輸出到螢幕