C語言中的scanf函數用法

例1
#include <stdio.h>
main()
{int i;int b;
scanf("%d",&i);
getchar();
}
爲什麼只輸入一個數字或字母都會退出?

例2
#include <stdio.h>
main()
{int i;int b;
scanf("%d",&i);
scanf("%d",&b);
}
爲什麼輸入一個數字不會退出,輸入一個字母會退出?

例3
#include <stdio.h>
main()
{int i;int b;
scanf("%d",&i);
getch();
}
爲什麼輸入一個數字或者字母都不會退出?

例1
/* 輸入數字和字母實際上都是輸入兩個字符,你輸入的數字getchar()讀取下面的回車.
如果是字母getchar()讀取你輸入的字母,你可以試一試.*/

例2
/* 在輸入一個數字的時候,第一個scanf函數讀取第一個數字,第二個scanf函數等待輸入(scanf函數會跳過空格操作符,包括回車,空格等),所以 不能退出。在輸入一個字母的時候,第一個不能匹配,並不能把第一個字母從輸入流中去掉,所以第二個scanf函數仍然讀取到一個字母而失去匹配,從而退出 函數,所以,不管有多少個int類型的scanf函數都會在輸入一個字母的情況下退出

例3
/*getch()這個函數是按任意鍵退出,前面你不管輸入多少,到這裏也得輸入就是這樣*/

再來看看百度百科上的解釋SCANF
1.scanf函數的一般形式
scanf(格式控制,地址表列)
int scanf(char *format[,argument,...]);
“格式控制”的含義同printf函數;“地址表列”是由若干個地址組成的表列,可以是變量的地址,或字符串首地址。
scanf()函數返回成功賦值的數據項數,出錯時則返回EOF。
例題 scanf函數輸入數據。
#include<stdio.h>
void main(){
int a,b,c;
printf("input a,b,c\n");
scanf("%d%d%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d",a,b,c);
}
格式字符 說明
%a 讀入一個浮點值(僅C99有效)
%A 同上
%c 讀入一個字符
%d 讀入十進制整數
%i 讀入十進制,八進制,十六進制整數
%o 讀入八進制整數
%x 讀入十六進制整數
%X 同上
%c 讀入一個字符
%s 讀入一個字符串
%f 讀入一個浮點數
%F 同上
%e 同上
%E 同上
%g 同上
%G 同上
%p 讀入一個指針
%u 讀入一個無符號十進制整數
%n 至此已讀入值的等價字符數
%[] 掃描字符集合
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章