3.5 การแสดงผลและการรับข้อมูล
TRANSCRIPT
การแสดงผลและการรับข้อมลู
(DATA OUTPUT AND INPUT)
หล่อ
ลากไส ้
จงัเลย
การแสดงผลข้อมลู
การแสดงผลข้อมูลสามารถท าได้ 3 รูปแบบดังนี้
• การแสดงผลทีละตัวอักษรด้วยค าส่ัง putchar()
• การแสดงผลเป็นข้อความด้วยค าสั่ง puts()
• การแสดงผลข้อมูลทุกชนิดด้วยค าส่ัง printf()
ค าสั่ง putchar () เป็นค าส่ังส าหรับแสดงอักขระทีละตัวออกทาง
จอภาพ ซึ่งสามารถแสดงผลจากค่าตัวอักขระ หรือแสดงจาก
ค่าตัวแปรก็ได้ โดยมีรูปแบบการใช้งานดังนี้
โดยที่ var เป็นตัวแปรชนิดอักขระ (char) หรือเป็นค่าอักขระ
ภายในเครื่องหมาย ‘ ’
การแสดงผลทีละตัวอักษรด้วยค าสัง่ putchar()
putchar();
ค าสั่ง puts() เป็นค าส่ังส าหรับแสดงข้อความออกทาง
จอภาพ ซึ่งสามารถแสดงผลจากค่าข้อความหรือแสดง
จากค่าตัวแปรก็ได้ โดยมีรูปแบบการใช้งานดังนี้
โดยที่ var เป็นตัวแปรชนิดข้อความ หรือเป็นค่า
ข้อความภายในเครื่องหมาย ‚ ‛
การแสดงผลเป็นข้อความด้วยค าส่ัง puts()
puts();
การแสดงผลข้อมูลทุกชนิดด้วยค าส่ัง printf()
ค าสั่ง printf() เป็นค าสั่งส าหรับแสดงผลออกทางจอภาพ และ
สามารถแสดงผลข้อมูลได้ทุกชนิด ไม่ว่าจะเป็นตัวอักษร ข้อความ
ตัวเลข และทศนิยม โดยมีรูปแบบการใช้งานดังนี้
printf(‚format‛, var_1, var_2, ..., var_n);
โดยที่ format เป็นส่วนควบคุมการแสดงผลข้อความภายใน
เครื่องหมาย ‚ ‛ ซึ่งรวมถึงการจัดรูปแบบการแสดงผลด้วย
var เป็นตัวแปรที่ต้องการแสดงผล ซึ่งต้องเป็นชนิดข้อมูลที่
ตรงกันกับ format ที่ก าหนดไว้
การแสดงผลด้วยค าสั่ง printf() นั้นสามารถแสดงผลได้ทุกชนิดข้อมูล
โดยใช้รหัสรูปแบบการแสดงผลแทนค่าตัวแปร นิพจน์ หรือค่าคงที่ชนิด
ต่าง ๆ ในข้อความ ซึ่งมีรหัสรูปแบบการแสดงผลที่ควรรู้ ดังนี้
รหัสรูปแบบการแสดงผลข้อความด้วยค าสั่ง prinft()
รหัสรปูแบบ ชนิดขอ้มลู
%c ใช้ก าหนดต าแหน่งที่จะแสดง อักขระ 1 ตัว (single
character)
%d ใช้ก าหนดต าแหน่งแสดงเลขจ านวนเต็ม (integerหรือ
int) 1 จ านวนในรูปเลขฐานสิบ
%ld จ านวนเต็มชนิด long
รหัสรปูแบบ ชนิดขอ้มูล
%e ใช้แสดงตัวเลขที่เป็นจุดทศนิยม (floating point
,float)ในรูป e เช่น 2.15e+2 คือแทนค่า215
%f จ านวนทศนิยม
%g จ านวนทศนิยม
%i จ านวนเต็มชนิด int
%o ใช้แสดง integer ในรูปเลขฐานแปด
รหัสรปูแบบ ชนิดขอ้มูล
%p พอยน์เตอร ์
%s ข้อความ
%u จ านวนเต็มที่มีค่าบวก
%x ใช้แสดง integer ในรูปเลขฐานสิบหก
จัดรูปแบบการแสดงผลข้อมูล
ในการแสดงผลการท างานของโปรแกรม เราต้องการจะแสดงอักขระพิเศษ
ทางจอภาพ ซึ่งภาษา C ได้ก าหนดรูปแบบการแสดงผลอักขระพิเศษต่าง ๆ
ดังนี ้รหัสรปูแบบ ชนิดขอ้มลู
\b เลื่อนเคอร์เซอรถ์อยหลังไป 1 ตัวอักษร
\n ขึ้นบรรทัดใหม่
\r เลื่อนเคอร์เซอร์ไปทางซ้ายสุด
\t แสดงแท็บตามแนวนอน
\’ แสดงเครื่องหมาย ‘
\‛ แสดงเครื่องหมาย ‚
\\ แสดงเครื่องหมาย \
การจัดพื้นที่แสดงผลข้อมลู
การแสดงผลข้อมูลที่เราต้องการนั้น อาจจะต้องการจัดรูปแบบ
ข้อความให้ชิดซ้ายหรือชิดขวา หรือแม้แต่แสดงข้อความตามจ านวน
ตัวอักษร เช่น ต้องการแสดงทศนิยม 2 ต าแหน่ง, แสดงข้อความไม่เกิน 10
ตัวอักษร เป็นต้น ซึ่งมีรูปแบบในการแสดงผลข้อมูลชนิดข้อความ ดังนี้
printf(‚%m.ns‛, variable);
โดยที ่ m เป็นจ านวนพื้นที่ตวัอักษรที่จองไว้
n เป็นจ านวนตัวอกัษรที่ต้องการแสดงผล
variable เป็นค่าข้อมูลหรือตัวแปรที่ต้องการแสดงผล
ในกรณีแสดงค่าทศนิยม มีรูปแบบการแสดงผลดังนี้
printf(‚%,nf‛, variable);
โดยที ่ n เป็นจ านวนตัวอักษรที่ต้องการแสดงผล
variable เป็นค่าข้อมูลหรือตัวแปรที่ต้องการแสดงผล
การรับข้อมูล
• รับข้อมูลทีละตัวอักษรด้วยค าส่ัง getch() และ getchar()
• รับข้อมูลชนิดข้อความด้วยค าส่ัง gets()
• รับข้อมูลทุกชนิดด้วยค าสั่ง scanf()
การรับข้อมูลทางแป้นพิมพ์ในภาษา C สามารถใช้ได้
หลากหลายค าสั่ง ไม่ว่าจะเป็นรับข้อมูลทีละตัวอักษร
รับข้อมูลเป็นข้อความ หรือจะรับข้อมูลทีละหลาย ๆ ค่า
ข้อมูลก็ได้
รับข้อมูลทีละตัวอักษรด้วยค าส่ัง getch() และ getchar()
ค าสั่ง getch() และ getchar() เป็นค าสั่งรับข้อมูลทีละตัวอักษรจาก
แป้นพิมพ์ ซึ่งมีรูปแบบการใช้งานดังนี้
ch = getch();
โดยที่ ch เป็นตัวแปรชนิดตัวอักขระส าหรับรับข้อมูลจากแป้นพิมพ์
ch = getchar();
โดยที่ ch เป็นตัวแปรชนิดตัวอักขระส าหรับรับข้อมูลจากแป้นพิมพ์
หมายเหตุ ค าสั่งท้ังสองจะแตกต่างกันที่การแสดงผลทางจอภาพ โดยค าส่ัง
getch() จะรับข้อมูลเก็บไว้ที่ตัวแปรทันทีเมื่อมีการป้อนข้อมูลทางแป้นพิมพ์
แต่ค าส่ัง getchar() เมื่อป้อนข้อมูลทางแป้นพิมพ์โปรแกรมจะยังไม่รับข้อมูล
เก็บไว้ที่ตัวแปรทันที แต่จะต้องมีการกดปุ่ม Enter ก่อน โปรแกรมจึงจะรับ
ข้อมูลเก็บไว้ที่ตัวแปร
“ ค าสั่ง gets() เป็นค าสั่งรับข้อมูลชนิดข้อความจากแป้นพิมพ์ ซึ่งมี
รูปแบบการใช้งานดังนี้
โดยที่ str เป็นตัวแปรชนิดข้อความส าหรับรับข้อมูลจากแป้นพิมพ์
รับข้อมลูชนดิข้อความด้วยค าสั่ง gets()
gets(str);
รับข้อมูลทุกชนิดด้วยค าส่ัง scanf()
ค าสั่ง scanf() เป็นค าสั่งรับข้อมูลได้ทุกชนิดทางแป้นพิมพ์ โดย
ก าหนดรูปแบบการรับข้อมูลที่ ตัวค าสั่งด้วยรหัสรูปแบบการ
แสดงผล ซึ่งมีรูปแบบค าส่ังดังนี้
scanf(‚format‛, &var_1, &var_2, ..., &var_n);
โดยที ่ format เป็นส่วนก าหนดชนิดของข้อมูลที่ต้องการรับจาก
แป้นพิมพ์
var_n เป็นตัวแปรที่ต้องการใช้ส าหรับเก็บข้อมูล ซึ่งต้อง
เป็นชนิดข้อมูลที่ตรงกันกับ format ที่ก าหนดไว้
ตารางแสดงรหัสรูปแบบการรับข้อมลู
รหัสรปูแบบ ชนิดขอ้มลู
%c อักษรหนึ่งตัว
%d จ านวนเต็มชนิด int
%ld จ านวนเต็มชนิด long
%e จ านวนจริงแบบเอ็กซ์โปเนนต์
%f จ านวนทศนิยม
%g จ านวนทศนิยม
%i จ านวนเต็มชนิด int
ตารางแสดงรหัสรูปแบบการรับข้อมลู (ต่อ)
รหัสรปูแบบ ชนิดขอ้มลู
%o เลขฐานแปด
%s ข้อความ
%u จ านวนเต็มที่มีค่าบวก
%x เลขฐานสิบหก
ที่มา : คู่มืออบรมครูวิทยาศาสตร์ คณิตศาสตร์ คอมพิวเตอร์ โลก ดาราศาสตร์ และอวกาศ ระดับมัธยมศึกษาตอนปลาย
หนังสือเรียนรายวิชาเพิ่มเติม การเขียนโปรแกรมเบื้องต้นด้วยภาษา C บริษทซัคเซสมีเดีย
คู่มือเรียนเขียนโปรแกรมภาษา ส านักพิมพ์ IDC PREMIER