1 ฟังก์ชันรับข้อมูล (input functions)
ในเนื้อหาฟังก์ชันการับข้อมูลของภาษา C มีฟังก์ชันที่ใช้ในการรับข้อมูลจากคีย์บอร์ด อยู่หลายฟังก์ชันที่จะกล่าวถึง ดังนี้คือ ฟังก์ชัน scanf( ), ฟังก์ชัน getchar( ), ฟังก์ชัน getch( ), ฟังก์ชัน getche( ) และฟังก์ชัน gets( ) ซึ่งแต่ละฟังก์ชันมีรายละเอียดของการใช้งานดังนี้
ในเนื้อหาฟังก์ชันการับข้อมูลของภาษา C มีฟังก์ชันที่ใช้ในการรับข้อมูลจากคีย์บอร์ด อยู่หลายฟังก์ชันที่จะกล่าวถึง ดังนี้คือ ฟังก์ชัน scanf( ), ฟังก์ชัน getchar( ), ฟังก์ชัน getch( ), ฟังก์ชัน getche( ) และฟังก์ชัน gets( ) ซึ่งแต่ละฟังก์ชันมีรายละเอียดของการใช้งานดังนี้
1.1 ฟังก์ชัน scanf( )
เป็นฟังก์ชันที่ใช้ในการรับข้อมูล จากคีย์บอร์ดเข้าไปเก็บไว้ในตัวแปรที่กำหนดไว ้โดยสามารถรับข้อมูลที่เป็นตัวเลขจำนวนเต็ม ตัวเลขทศนิยม ตัวอักขระตัวเดียว หรือข้อความก็ได
เป็นฟังก์ชันที่ใช้ในการรับข้อมูล จากคีย์บอร์ดเข้าไปเก็บไว้ในตัวแปรที่กำหนดไว ้โดยสามารถรับข้อมูลที่เป็นตัวเลขจำนวนเต็ม ตัวเลขทศนิยม ตัวอักขระตัวเดียว หรือข้อความก็ได
้ รูปแบบการใช้งานฟังก์ชัน
scanf (control string,argument list); |
โดยที่
control string คือ รหัสรูปแบบข้อมูล (format code) โดยจะต้องเขียนอยู่ภายใต้เครื่องหมาย “……..” (double quotation)
control string คือ รหัสรูปแบบข้อมูล (format code) โดยจะต้องเขียนอยู่ภายใต้เครื่องหมาย “……..” (double quotation)
argument list คือ ชื่อตัวแปรที่ใช้เก็บข้อมูลโดยจะต้องใช้เครื่องหมาย & (ampersand) นำหน้าชื่อตัวแปร ยกเว้นตัวแปรชนิด string ไม่ต้องมีเครื่องหมาย & นำหน้าชื่อ ถ้ามีตัวแปรมากกว่า 1 ตัวแปร ให้ใช้เครื่องหมาย , (comma) คั่นระหว่างตัวแปรแต่ละตัว
ตารางที่ 1 แสดงรหัสแบบข้อมูล ที่สามารถใช้ในฟังก์ชัน 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.
เพื่อให้เกิดความเข้าใจการใช้งานฟังก์ชัน scanf( ) ได้ดียิ่งขึ้นควรศึกษาโปรแกรมตัวอย่างที่ 1, 2 และ 3 ดังต่อไปนี้
โปรแกรมตัวอย่างที่ 1 แสดงโปรแกรมการใช้ฟังก์ชัน scanf( ) ในการรับข้อมูลจากคีย์บอร์ดเข้าไปเก็บไว้ในตัวแปรชนิดจำนวนเต็ม
/* scanf1.c */ | ||||
ผลลัพธ์ที่ได้จากโปรแกรม
หน้าจอว่าง ๆ มีเคอร์เซอร์กระพริบเพื่อรอรับข้อมูลจากคีย์บอร์ด (ข้อมูลที่ต้องการนั้นเป็นจำนวนเต็ม เพื่อนำไปเก็บไว้ที่ตัวแปร a) ซึ่งผู้ใช้ควรเติมข้อมูลตัวเลขจำนวนเต็มเพื่อให้สัมพันธ์กับชนิดของตัวแปร
คำอธิบายโปรแกรม
จากโปรแกรมตัวอย่างที่ 1 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังนี้
จากโปรแกรมตัวอย่างที่ 1 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังนี้
บรรทัดที่ 1 เป็นคำสั่งเรียกแฟ้มที่ชื่อว่า stdio.h ซึ่งภายในจะบรรจุคำสั่งหรือฟังก์ชันที่จำเป็นต้องใช้ในภาษา C เช่น printf( )
บรรทัดที่ 2 เป็นฟังก์ชันหลักของโปรแกรม และบอกให้ C compiler รู้ว่าฟังก์ชัน
main( ) ไม่มีการส่งค่าข้อมูลและไม่มีการรับค่าข้อมูลกลับ
บรรทัดที่ 3 เป็นการแสดงจุดเริ่มต้นของฟังก์ชัน main( )
บรรทัดที่ 4 เป็นการประกาศตัวแปรชื่อ a เป็นชนิดจำนวนเต็ม หรือ int
บรรทัดที่ 5 ฟังก์ชัน scanf( ) เพื่อรอรับข้อมูลจากคีย์บอร์ดเข้าไปเก็บไว้ในตัวแปร a ซึ่งเป็นชนิดจำนวนเต็ม
บรรทัดที่ 6 เป็นการแสดงจุดสิ้นสุดของฟังก์ชัน main( )
โปรแกรมตัวอย่างที่ 2 แสดงโปรแกรมการใช้ฟังก์ชัน scanf( ) ในการรับข้อมูลจากคีย์บอร์ดเข้าไปเก็บไว้ในตัวแปรชนิดจำนวนเต็ม และนำค่าของตัวแปรออกแสดงผลที่จอภาพ
/* scanf2.c */ | ||||
ข้อสังเกต ในเอกสารเล่มนี้ ผลลัพธ์ที่ได้จากโปรแกรม ถ้าตัวอักษรที่เป็นสีเข้มคือข้อความที่ให้ผู้ใช้พิมพ์ผ่านคีย์บอร์ด
คำอธิบายโปรแกรม
ในโปรแกรมตัวอย่างที่ 2 โปรแกรมจะรับข้อมูลจากคีย์บอร์ด ที่เป็นชนิดจำนวนเต็มเก็บไว้ในตัวแปร และนำค่าของตัวแปรแสดงผลออกจอภาพ ด้วยคำสั่งบรรทัดที่ 6 คือ printf(“Your enter is…%d”, a); สำหรับฟังก์ชัน printf( ) ผู้ใช้สามารถศึกษารายละเอียดเพิ่มเติมก่อนได้ในหัวข้อ 2.1
ในโปรแกรมตัวอย่างที่ 2 โปรแกรมจะรับข้อมูลจากคีย์บอร์ด ที่เป็นชนิดจำนวนเต็มเก็บไว้ในตัวแปร และนำค่าของตัวแปรแสดงผลออกจอภาพ ด้วยคำสั่งบรรทัดที่ 6 คือ printf(“Your enter is…%d”, a); สำหรับฟังก์ชัน printf( ) ผู้ใช้สามารถศึกษารายละเอียดเพิ่มเติมก่อนได้ในหัวข้อ 2.1
โปรแกรมตัวอย่างที่ 3 แสดงโปรแกรมการใช้ฟังก์ชัน scanf( ) ในการรับข้อมูลจากคีย์บอร์ดเข้าไปเก็บไว้ในตัวแปรชนิดตัวอักษร เลขจำนวนเต็ม และเลขทศนิยม และนำค่าของตัวแปรออกแสดงผลที่จอภาพ
/* scanf3.c */ | ||||
ผลลัพธ์ที่ได้จากโปรแกรม
คำอธิบายโปรแกรม
จากโปรแกรมตัวอย่างที่ 3 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังต่อไปนี้
จากโปรแกรมตัวอย่างที่ 3 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังต่อไปนี้
บรรทัดที่ 4 เป็นการชุดชนิด char ซึ่งจองไว้ 50 ตัวอักษร (เรื่องตัวแปรชุดได้อธิบายรายละเอียดไว้ในบทที่ 5)
บรรทัดที่ 7 ฟังก์ชัน clrscr( ) ใช้ลบข้อความใด ๆ ออกจากจอภาพ ซึ่งจะเรียกใช้งานควบคู่กับแฟ้มที่ชื่อ conio.h ดังนั้นก่อนฟังก์ชัน main( ) จึงต้องเรียกใช้ #include <conio.h> ก่อน (บรรทัดที่ 2)
บรรทัดที่ 8 จะแสดงข้อความและรอรับค่า Name และ Age จากผู้ใช้ ดังนั้นเวลาเติมข้อมูลให้เว้นช่องว่างอย่างน้อย 1 ช่อง เพื่อแยกข้อมูล Name กับ Age
บรรทัดที่ 9 จะรับข้อมูลจากคีย์บอร์ด 2 ค่า มาเก็บไว้ในตัวแปร name เป็นข้อความ และเก็บในตัวแปร age เป็นตัวเลขจำนวนเต็ม
บรรทัดที่ 10 จะทำงานคล้ายกับบรรทัดที่ 8 แต่จะรับข้อมูลที่เป็นตัวเลขทศนิยม
บรรทัดที่ 11 – 15 จะนำข้อมูลที่เก็บไว้ในตัวแปรต่าง ๆ ออกมาแสดงผลที่จอภาพตามรหัสรูปแบบข้อมูลต่าง ๆ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น