scanf()
輸入
輸入
#include<iostream>
main(){
int x;
printf("請輸入一個整數:");
scanf("%d",&x);
printf("%d\n",x);
return 0;
}
Input: 123、Output: 123
以scanf語法輸入兩個整數,輸出這兩個整數的合。
int x,y,sum;
printf ("請輸入兩個整數:");
scanf ("%d%d",&x,&y);
sum = x+y;
printf ("輸入合計為:%d\n",sum);
#include<iostream>
main(){
char ch;
printf("請輸入一個字元:");
scanf("%c",&ch);
printf("%c\n",ch);
return 0;
}
Input: A、Output: A
#include<iostream>
main(){
char ch[80];
printf("請輸入一個字元:");
scanf("%s",ch);
printf("%s\n",ch);
return 0;
}
Input: ABC def、Output: ABC
※空白不會讀入※
範例1:讀到Enter為止
char str[10];
scanf("%[^\n]",str);
printf("%s\n",str);
Input: 123 abc =-01@!~
Output: 123 abc =-01@!~
※集合字元之間以減號「-」連接,以可單獨指定集合字元(例如:空白)。
範例2:只能輸入大小寫字母、數字、空白字元,遇到非數字和字母時輸入結束。
char str[10];
scanf("%[a-z A-Z0-9]",str);
printf("%s\n",str);
Input: abcDEF 456=
Output: abcDEF 456
重要概念
1.使用scanf()讀取數字或字元型態的資料時,變數前必須有位址指定字元&。
FIFO先進先出
字元緩衝區入口
字元緩衝區出口
2.連續讀取字元或字串之前,因為無法預期輸入長度(過多的會殘留在 buffer 內),所以必須將字元緩衝區(buffer)清除。
程式碼:使用迴圈讀取(清除)字元
while(getchar()!='\n')
continue;
清除緩衝區副程式呼叫寫法