ในภาษาซี การรับข้อมูลจากคีย์บอร์ดสามารถทำได้โดยการเรียกใช้ฟังก์ชัน scanf() ซึ่งเป็นฟังก์ชันมาตรฐานสำหรับ
รับข้อมูลจากคีย์บอร์ด โดยสามารถรับข้อมูลได้ทุกประเภท ไม่ว่าจะเป็นจำนวนเต็ม ทศนิยม อักขระ หรือข้อความ โดยมีรูปแบบ
scanf("format",&variable);
โดยที่
control string คือ รหัสรูปแบบข้อมูล (format code) โดยจะต้องเขียนอยู่ภายใต้เครื่องหมายอัญประกาศ “……..”
argument list คือ ชื่อตัวแปรที่ใช้เก็บข้อมูลโดยจะต้องใช้เครื่องหมาย & (ampersand) นำหน้าชื่อตัวแปร
ยกเว้นตัวแปรชนิด string ไม่ต้องมีเครื่องหมาย & นำหน้าชื่อ ถ้ามีตัวแปรมากกว่า 1 ตัวแปร
ให้ใช้เครื่องหมาย , (comma) คั่นระหว่างตัวแปรแต่ละตัว
Library Function เป็นฟังก์ชันสำหรับการทำงานหนึ่งๆ ที่ผู้พัฒนา complier ภาษาซี ได้ทำการพัฒนามาเตรียมไว้ให้เราเรียกใช้
มีผลดีคือลดเวลาในการพัฒนา โปรแกรมคอมพิวเตอร์ บ้างก็เรียกว่าห้องสมุดของภาษาซี
Library Function ของภาษา C จะเก็บอยู่ใน ไฟล์นามสกุล.h (หรือที่เรียกว่า Header File) อย่างเช่น stdio.h math.h
การเรียกใช้ Library Function เราต้องรู้ว่า Function ที่ต้องการอยู่ในไฟล์ใด จากนั้นทำการ #include ไฟล์นั้นไว้ในส่วนหัวของ
โปรแกรมก่อนที่จะเรียกใช้ Function เช่น #include <stdio.h> #include <math.h> ฟังก์ชั่น scanf( ) เรียกใช้ Libratu Function stdio.h
ตารางแสดงรหัสแบบข้อมูลที่สามารถใช้ในฟังก์ชัน scanf( )
รหัสรูปแบบ
(format code) |
ความหมาย |
%c |
ใช้กับข้อมูลชนิดตัวอักขระตัวเดียว (single character : char) |
%d |
ใช้กับข้อมูลชนิดตัวเลขจำนวนเต็ม (integer : int) โดยสามารถใช้กับ ตัวเลขฐาน 10 เท่านั้น |
%e |
ใช้กับข้อมูลชนิดตัวเลขจุดทศนิยม (floating point : float) |
%f, %lf |
ใช้กับข้อมูลชนิด float และ double ตามลำดับ |
%g |
ใช้กับข้อมูลชนิด float |
%h |
ใช้กับข้อมูลชนิด short integer |
%l |
ใช้กับข้อมูลชนิด int โดยใช้กับตัวเลขฐาน 8, ฐาน 10 และฐาน 16 |
%o |
ใช้กับข้อมูลชนิด int โดยสามารถใช้กับตัวเลขฐาน 8 เท่านั้น |
%u |
ใช้กับข้อมูลชนิด unsigned int โดยใช้กับตัวเลขฐาน 10 เท่านั้น |
%x |
ใช้กับข้อมูลชนิด int โดยสามารถใช้กับตัวเลขฐาน 16 เท่านั้น |
%s |
ใช้กับข้อมูลชนิด string |
ที่มา : Gottfried, S. Byron, 1990 : 481.
ตัวอย่าง
ผลลัพธ์
หน้าจอให้ป้อนตัวเลขอายุ
ตัวอย่าง การรับข้อมูลทางคีย์บอร์ดโดยรับข้อมูลแบบ1ค่า(int)
คำอธิบาย | |
#include <stdio.h> | ==> เป็นการระบุให้นำไฟล์ stdio.h มารวมกับไฟล์นี้ เพื่อที่จะสามารถใช้คำสั่งที่อยู่ในไฟล์นี้มาใช้งานได้ ต้องขึ้นต้นด้วยเครื่องหมาย # เสมอ |
main() | ==> เริ่มต้นด้วยฟังก์ชัน main () แล้วใส่เครื่องหมายกำหนดขอบเขตเริ่มต้นของตัวโปรแกรมคือ |
{ | |
int A; | ==> ประกาศตัวแปร A ชนิดจำนวนเต็ม |
scanf("%d",&A); | ==> รับค่า A จำนวนเต็มจากคีย์บอร์ด |
printf("A = %d",A); | ==> แสดงผลค่าจำนวนเต็ม A ทางหน้าจอ |
} | ==> จบโปรแกรม |
ผลลัพธ์
คำอธิบาย | |
#include <stdio.h> | ==> เป็นการระบุให้นำไฟล์ stdio.h มารวมกับไฟล์นี้ เพื่อที่จะสามารถใช้คำสั่งที่อยู่ในไฟล์นี้มาใช้งานได้ ต้องขึ้นต้นด้วยเครื่องหมาย # เสมอ |
main() |
==> เริ่มต้นด้วยฟังก์ชัน main () แล้วใส่เครื่องหมายกำหนดขอบเขตเริ่มต้นของตัวโปรแกรมคือ { หลังจากนั้นใส่คำสั่งหรือฟังก์ชันต่างๆโดยแต่ล่ะคำสั่งหรือฟังก์ชันนั้นๆ จะต้องปิดด้วยเครื่องหมาย ; |
{ | |
float B; | ==> ประกาศตัวแปร B เป็นข้อมูลชนิดตัวเลขที่มีจุดทศนิยม |
scanf("%f",&B); | ==> รับค่า B ที่เป็นตัวเลขจุดทศนิยมจากคีย์บอร์ด |
printf( "B = %f",B); | ==> แสดงผลค่าจำนวนเต็ม B ทางหน้าจอ |
getch(); | |
} | ==> จบโปรแกรม |
ผลลัพธ์
คำอธิบาย | |
#include <stdio.h> | |
main() | |
{ | |
int A; | ==> ตัวแปร A ชนิดจำนวนเต็ม |
float B; | ==> ตัวแปร B ชนิดที่มีจุดทศนิยม |
scanf("%d %f",&A,&B); | ==> รับค่าตัวแปร A, B |
printf( "A = %d , B = %f",A,B); | ==> แสดงผล ค่า A เป็นจำนวนเต็ม ค่า B ที่มีจุดทศนิยม |
getch(); | |
} |
ผลลัพธ์