การแสดงผลและการรับข้อมูล 
(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

3.5 การแสดงผลและการรับข้อมูล

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