上一篇我們介紹了scanf的用法,雖然可能會有點小混亂,但應該不至於太難理解?
接下來我們來釐清一下觀念、幫scanf做個小結,最後有個小作業可以試試看喔!
看看下面的程式碼,關於printf的部分我們就不重複再提,可以參考看看第八篇的內容,比較不一樣的就是當中出現了「scanf();」函式來讀取輸入,而在讀取輸入前我放了一行提示輸入字串,方便提醒此時應該要輸入數字。
printf("plz input a number: ");
scanf("%d", &data);
可以看到scanf的語法跟printf在表面上看是有些類似的,差別在於scanf時變數前須加上「&」,因為scanf用來取得使用者的輸入後,再存入變數所在的地址,這就是為什麼要在後面的變數前加上「&」,而加上「&」的行為我們稱為「取址」,顧名思義是用來取得該資料的存放地址。
所以意義上差別有點像下圖這樣:
#include <stdio.h>
int main(){
int data1;
char data2;
float data3;
printf("plz input int.char.float: ");
scanf("%d %c %f", &data1, &data2, &data3);
printf("your data: %d %c %f\n", data1, data2, data3);
return 0;
}
#include <stdio.h>
int main(){
int data1, data2, data3;
printf("plz input 3 int: ");
scanf("%d%d%d", &data1, &data2, &data3);
printf("your data: %d %d %d\n", data1, data2, data3);
return 0;
}
(備註:若要限制讀取符號,讓其自動分割可以參考第七篇格式指令字的第4點)
#include <stdio.h>
int main(){
int data1, data2, data3;
printf("plz input 3 int: ");
scanf("%d.%d.%d", &data1, &data2, &data3);
printf("your data: %d %d %d\n", data1, data2, data3);
return 0;
}
徹底介紹完scanf跟printf,不知道大家吸收了多少呢,所以我們來嘗試做個可以輸入兩個int,然後自動加總輸入並輸出結果的程式吧!
結果要長得像以下這樣,大家來試試看吧: