การแสดงผลและการรับข้อมูล
คำสั่งในการแสดงผลออกทางหน้าจอ
|
คำสั่งในการรับข้อมูลจากคีย์บอร์ด
|
1. คำสั่ง printf() | 1. คำสั่ง scanf() |
2. คำสั่ง putchar() | 2. คำสั่ง getchar() และ getch() |
3. คำสั่ง puts() | 3. คำสั่ง gets() |
แสดงผลออกทางหน้าจอ
การแสดงผลข้อมูลออกทางหน้าจอสามารถทำได้ง่าย โดย
เรียกใช้คำสั่งหรือฟังก์ชันมาตรฐานที่ภาษาซีเตรียมไว้ให้ใช้
คำสั่ง printf ถือว่าเป็นคำสั่งพื้นฐานที่สุดในการแสดงผล
ข้อมูลทุกชนิดออกทางหน้าจอ ไม่ว่าจะเป็นจำนวนเต็ม(int) ,
ทศนิยม ( float ) , ข้อความ ( string ) หรืออักขระ
นอกจากนี้คำสั่งยังมีความยืดหยุ่นสูง โดยเราสามาถกำหนดหรือจัด
รูปแบบการแสดงผลให้มีระเบียบหรือเหมาะสมตามความต้องการได้
อีกด้วย รูปแบบการเรียกใช้คำสั่ง printf แสดงได้ดังนี้
printf(“ format ” , variable); |
format : ข้อมูลที่ต้องการแสดงออกทางหน้าจอโดยข้อมูลนี้ต้อง เขียนไว้ในเครื่องหมาย “ ” ข้อมูลที่สามารถแสดงผลได้มีอยู่ 2 ประเภท คือ ข้อความธรรมดา และค่าที่เก็บไว้ในตัวแปร ซึ่งถ้าเป็น ค่าที่เก็บไว้ในตัวแปรต้องใส่รหัสควบคุมรูปแบบให้ตรงกับชนิดของ ข้อมูลที่เก็บไว้ในตัวแปรนั้นด้วย variable : ตัวแปรหรือนิพจน์ที่ต้องการนำค่าไปแสดงผลให้ ตรงกับรหัสควบคุมรูปแบบที่กำหนดไว้ |
รหัสควบคุมรูปแบบการแสดงผลค่าของตัวแปรออกทางหน้าจอ แสดงได้ดังนี้
รหัสควบคุมรูปแบบ
|
การนำไปใช้งาน
|
%d
| สำหรับแสดงผลค่าของตัวแปรชนิดจำนวนเต็ม ( int, short, unsigned short, long, unsigned long) |
%u
| สำหรับแสดงผลตัวเลขจำนวนเต็มบวก ( unsigned short, unsigned long ) |
%o
| สำหรับแสดงผลออกมาในรูปแบบของเลขฐานแปด |
%x
| สำหรับแสดงผลออกมาในรูปแบบของเลขฐานสิบหก |
%f
| สำหรับแสดงผลค่าของตัวแปรชนิดจำนวนทศนิยม ( float, double, long double ) |
%e
| สำหรับแสดงผลตัวเลขทศนิยมออกมาในรูปแบบของ ( E หรือ e ) ยกกำลัง ( float, double, long double ) |
%c
| สำหรับแสดงผลอักขระ 1 ตัว ( char ) |
%s
| สำหรับแสดงผลข้อความ ( string หรืออักขระมากกว่า 1 ตัว) |
%p
| สำหรับแสดงผลตัวชี้ตำแหน่ง ( pointer ) |
ตัวอย่างการใช้คำสั่ง printf แสดงผลข้อความธรรมดาออกทางหน้าจอ
ส่วนตัวอย่างการใช้คำสั่ง printf แสดงผลจากค่าของตัวแปรหรือ
นิพจน์การคำนวณออกทางหน้าจอ แสดงได้ดังนี้
โดยกำหนดให้
แสดงผลให้เป็นระเบียบด้วยอักขระควบคุมการแสดงผล
นอกจากนี้เรายังสามารถจัดรูปแบบการแสดงผลให้ดูเป็น
ระเบียบมากขึ้น เช่น การขึ้นบรรทัดใหม่หลังแสดงข้อความ หรือเว้น
ระยะแท็บระหว่างข้อความ โดยใช้อักขระควบคุมการแสดงผลร่วมกับ
คำสั่ง printf ในภาษาซีมี อักขระควบคุมการแสดงผลหลาย
รูปแบบด้วยกัน ดังแสดงต่อไปนี้
อักขระควบคุมการแสดงผล
|
ความหมาย
|
\n
| ขึ้นบรรทัดใหม่ |
\t
| เว้นช่องว่างเป็นระยะ 1 แท็บ (6 ตัวอักษร) |
\r
| กำหนดให้เคอร์เซอร์ไปอยู่ต้นบรรทัด |
\f
| เว้นช่องว่างเป็นระยะ 1 หน้าจอ |
\b
| ลบอักขระสุดท้ายออก 1 ตัว |
การนำอักขระควบคุมการแสดงผลมาใช้ เราต้องเขียนอักขระควบคุม
การแสดงผลไว้ภายในเครื่องหมาย “ ” ดังแสดงตัวอย่างต่อไปนี้
ควบคุมขนาดพื้นที่แสดงผล
ตามปกติในการแสดงผลโปรแกรมจะเตรียมพื้นที่ให้พอดีกับ
ข้อความ เช่น ถ้าจะแสดงข้อความ HELLO ซึ่งมี 5 ตัวอักษร
โปรแกรมจะจัดเตรียมพื้นที่ไว้ให้พอดีสำหรับ 5 ตัวอักษร ดังแสดง
รูปต่อไปนี้
H
|
E
|
L
|
L
|
O
|
แต่เราสามารถเพิ่มพื้นที่ในการแสดงผลได้ตามต้องการ
เช่น กำหนดให้แสดงข้อความ HELLO ในพื้นที่ขนาด 8 ตัว
อักษรโปรแกรมจะแสดงข้อความชิดด้านขวาของพื้นที่ที่จองไว้ โดย
จะเว้นพื้นที่ว่างทางด้านซ้ายอีก 3 ช่องที่เหลือเอาไว้ ดังรูป
H
|
E
|
L
|
L
|
O
|
วิธีกำหนดขนาดพื้นที่การแสดงผล ให้ใส่ตัวเลขขนาดของ
พื้นที่ที่ต้องการไว้หลังเครื่องหมาย % ในรหัสควบคุมรูปแบบ ดัง
แสดง ตัวอย่างต่อไปนี้
ในกรณีที่ต้องการเปลี่ยนจากการแสดงผลชิดขอบด้านขวาให้
ชิดขอบด้านซ้ายแทน สามารถทำได้ โดยใส่เครื่องหมาย -
ไว้หน้าตัวเลขระบุขนาดพื้นที่ ดังแสดง ตัวอย่างต่อไปนี้
ควบคุมตำแหน่งตัวเลขหลังจุดทศนิยม
นอกจากนี้ในการแสดงผลตัวเลขหลังจุดทศนิยม ตาม
ปกติถ้าไม่ได้กำหนดค่าใด ๆ เพิ่มเติม เมื่อใช้รหัสควบคุมรูปแบบ
%f โปรแกรมจะแสดงตัวเลขทศนิยมทั้งหมด 6 ตำแหน่ง ในกรณี
ที่เราต้องการตัดให้แสดงตัวเลขหลังจุดทศนิยมเท่าที่จำเป็น (เช่น
2 หรือ 3 ตำแหน่ง) ก็สามารถกำหนดค่าเพิ่มไปกับรหัสควบคุมรูป
แบบได้ ดังต่อไปนี้
% . nf
|
n : จำนวนตัวเลขหลังจุดทศนิยมที่ต้องการให้แสดงผล
|
ตัวอย่างการแสดงผลจำนวนทศนิยม โดยที่มีการกำหนดตำแหน่งทศนิยม แสดงได้ดังนี้
ในการแสดงผลตัวอักษรหรืออักขระ ( char ) ออกทาง
หน้าจอ นอกจากใช้คำสั่ง printf พร้อมกับกำหนดรหัสควบคุม
รูปแบบ %c แล้ว เราสามารถเรียกใช้คำสั่งสำหรับแสดงตัวอักษร
หรืออักขระโดยเฉพาะได้อีกด้วย โดยคำสั่งนั้นคือ คำสั่ง
putchar() ซึ่งมีรูปแบบการเรียกใช้คำสั่ง ดังแสดงต่อไปนี้
putchar(ch); |
ch : ตัวอักษรหรืออักขระเขียนอยู่ภายในเครื่องหมาย ‘c' หรือตัวแปรชนิด char |
ตัวอย่างการใช้คำสั่ง putchar() ในการแสดงผลอักขระออกทางหน้าจอ แสดงได้ดังนี้
เป็นคำสั่งสำหรับแสดงผลข้อความออกทางหน้าจอ มีรูปแบบ
การใช้คำสั่งดังนี้
puts(str); |
str : ข้อความซึ่งเขียนอยู่ภายในเครื่องหมาย “ ” หรือตัวแปรที่เก็บข้อมูลชนิดข้อความ |
ตัวอย่างการใช้งานคำสั่ง puts() ในการแสดงข้อความออกทางหน้าจอ แสดงได้ดังนี้
รับข้อมูลจากคีย์บอร์ด
การทำงานของโปรแกรมส่วนใหญ่มักจะเป็นการเชื่อมโยงกับ
ผู้ใช้แบบ 2 ทิศทาง นั่นก็คือ ทั้งภาคของแสดงผลการทำงานออก
ทางหน้าจอ และภาคของการรับข้อมูลจากผู้ใช้เข้ามาทางคีย์บอร์ด
เพื่อร่วมในการประมวลผลของโปรแกรม ซึ่งในภาคของการรับข้อมูล
จากผู้ใช้ ภาษาซีกำหนดคำสั่งและฟังก์ชันมาตรฐานเอาไว้ให้เรียกใช้
แล้ว เช่นเดียวกับภาคของการแสดงผล รายละเอียดของคำสั่งเหล่า
นี้ได้แก่
คำสั่ง scanf()
ในภาษาซี การรับข้อมูลจากคีย์บอร์ดสามารถทำได้โดยการ
เรียกใช้ฟังก์ชัน scanf() ซึ่งเป็นฟังก์ชันมาตรฐานสำหรับรับ
ข้อมูลจากคีย์บอร์ด โดยสามารถรับข้อมูลได้ทุกประเภท ไม่ว่าจะ
เป็นจำนวนเต็ม(int),ทศนิยม(float),อักขระ(char)
หรือข้อความก็ตาม รูปแบบการเรียกใช้คำสั่ง scanf() คล้ายกับ
การเรียกใช้คำสั่ง printf() ดังแสดงต่อไปนี้
scanf(“format” , &variable) ; |
format : การใช้รหัสควบคุมรูปแบบ เพื่อกำหนดชนิดของข้อมูล ที่จะรับเข้ามาจากคีย์บอร์ด โดยรหัสควบคุมรูปแบบจะใช้ชุดเดียวกับ รหัสควบคุมรูปแบบของคำสั่ง printf() variable : ตัวแปรที่จะใช้เก็บค่าข้อมูลที่รับเข้ามาจากคีย์บอร์ด โดยชนิดของตัวแปรจะต้องตรงกับรหัสควบคุมรูปแบบที่กำหนดไว้ นอกจากนี้ หน้าชื่อของตัวแปรจะต้องนำหน้าด้วยเครื่องหมาย & ยกเว้นตัวแปรสตริงสำหรับเก็บข้อความเท่านั้นที่ไม่ต้องนำหน้าด้วย เครื่องหมาย & |
ตัวอย่างการใช้งานคำสั่ง scanf() เพื่อรับข้อมูลจากคีย์บอร์ด แสดงได้ดังนี้
คำสั่ง getchar() และ getch()
ทั้ง 2 คำสั่งนี้ใช้รับข้อมูลประเภทอักขระ( char ) โดยมี
รูปแบบการเรียกใช้คำสั่งดังนี้
ch = getchar(); ch = getch(); |
ch : ตัวแปรชนิด char เพื่อใช้เก็บค่าของอักขระหรือตัวอักษรที่รับเข้ามา |
ถึงแม้ว่าทั้งคำสั่ง getchar() และ getch() จะใช้
สำหรับรับข้อมูลชนิดอักขระเหมือนกัน แต่ทั้ง 2 คำสั่งนี้มีความแตก
ต่างกันอยู่ตรงที่ คำสั่ง getchar() เมื่อป้อนอักขระเข้ามาแล้ว
ต้องกดปุ่ม <Enter> โปรแกรมจึงจะกลับไปทำงานต่อได้ และตัว
อักขระที่เราป้อนจะแสดงขึ้นมาให้เห็นบนหน้าจอด้วย ส่วนคำสั่ง
getch()ไม่ต้องกดปุ่ม <Enter> เพียงแค่เราป้อนอักขระเข้ามา
1 ตัว โปรแกรมจะกลับไปทำงานต่อทันที และตัวอักขระที่เราป้อน
จะไม่แสดงขึ้นมาให้เห็น
ตัวอย่างการเรียกใช้คำสั่ง getchar() รับตัวอักษรเข้ามาจากคีย์บอร์ด แสดงได้ดังนี้
ผลการทำงานของโปรแกรมสังเกตได้ว่า เราต้องกดปุ่ม
<Enter> หลังจากที่ป้อนตัวอักษรแล้ว นอกจากนี้ตัวอักษรที่ป้อน
จะแสดงขึ้นมาบนหน้าจอด้วย จากโปรแกรมเดิม เมื่อเปลี่ยนจาก
คำสั่ง getchar() เป็น getch() ผลลัพธ์จากการทำงานแสดง
ได้ดังนี้
จะสังเกตได้ว่า เมื่อใช้คำสั่ง getch()เราไม่ต้องกดปุ่ม
<Enter> ตามหลังการป้อนตัวอักษร และจะไม่เห็นตัวอักษรที่เรา
ป้อนแสดงขึ้นมาบนหน้าจอ
นอกจากคำสั่งในการรับข้อมูลชนิดอักขระหรือตัวอักษรแล้ว
การรับข้อความจากคีย์บอร์ดก็มีคำสั่งให้เรียกใช้เช่นกัน คือ คำสั่ง
gets() ซึ่งมีรูปแบบการเรียกใช้ดังต่อไปนี้
gets(str); |
str : ตัวแปรสำหรับเก็บข้อความที่รับเข้ามาจากคีย์บอร์ด ซึ่งจะ ต้องสร้างเตรียมไว้ก่อนที่จะเรียกใช้คำสั่ง gets() |
ตัวอย่างการเรียกใช้คำสั่ง gets() รับข้อความมาจากคีย์บอร์ด แสดงได้ดังนี้
ไม่มีความคิดเห็น:
แสดงความคิดเห็น