การรับข้อมูล
ฟังก์ชัน scanf()
เป็นฟังก์ชันที่ใช้รับค่าข้อมูลจากทางแป้นพิมพ์มาเก็บไว้ในตัวแปร ถูกนิยามไว้ใน I/O Library ในไฟล์ชื่อ “stdio.h”
รูปแบบ
scanf(“control string”,variable list);
โดยที่ control string คือ รหัสรูปแบบที่ใช้ในการควบคุมชนิดของข้อมูลที่จะรับจากแป้นพิมพ์ ซึ่งจะต้องสอดคล้องกับชนิดของตัวแปร โดยเขียนไว้ภายในเครื่องหมาย “ ”
variable list หมายถึง ตัวแปรที่จะเก็บข้อมูลที่ป้อนจากทางแป้นพิมพ์ หากมีจำนวนตัวแปรมากกว่า 1 ตัว จะต้องใส่เครื่องหมาย “,” (Comma) โดยที่ตัวแปรทุกตัวจะต้องนำหน้าด้วยสัญลักษณ์ “&” (Ampersand)
ตัวอย่างที่ 1
#include <stdio.h>
main()
{ int age;
scanf(“%d”,&age); // ใช้ %d เนื่องจากประกาศตัวแปร age เป็นชนิด int
printf(“You are %d years old.”,age);
}
ผลลัพธ์
18 ค่าที่ผู้ใช้ป้อนเข้ามาทางแป้นพิมพ์ แล้วกดแป้น Enter
You are 18 years old.
เมื่อสั่งให้โปรแกรมทำงาน จะปรากฏเคอร์เซอร์กระพริบเพื่อรอการป้อนข้อมูลจากผู้ใช้ ในกรณีนี้เมื่อผู้ใช้ป้อนเลข 18 เข้ามาทางแป้นพิมพ์ เลข 18 จะถูกเก็บอยู่ในตัวแปรชื่อ age และแสดงค่าออกทางจอภาพในฟังก์ชัน printf ของบรรทัดถัดไป
การรอรับข้อมูล ผู้เขียนโปรแกรมควรมีข้อความนำเพื่อแจ้งให้ผู้ใช้ทราบว่า ควรจะป้อนค่าอะไร
ตัวอย่างที่ 2
#include <stdio.h>
void main()
{ int age;
printf(“How old are you ? “);
scanf(“%d”,&age);
printf(“You are %d years old.”,age);
}
ผลลัพธ์
How old are you ? 18
You are 18 years old.
ตัวอย่างที่ 3
#include <stdio.h>
const float pi =3.1415926; //กำหนดให้ pi เป็นค่าคงที่ ที่มีค่าเท่ากับ 3.1415926
main()
{ float radius;
printf(“** circle **\n”);
printf("input radius : ");
scanf("%f",&radius); //ใช้ %f เนื่องจากประกาศ radius เป็นชนิด float
printf("area = %.4f\n",pi*radius*radius);
printf("circumference = %.4f",2*pi*radius);
}
ผลลัพธ์
** circle **
input radius : 10 ==> ผู้ใช้ป้อน 10 แล้วกด enter
area = 314.1593
circumference = 62.8319