คำสั่งพื้นฐานการรับการแสดงผลข้อมูล
การแสดงผลและการรับข้อมูล
คำสั่งในการแสดงผลออกทางหน้าจอ คำสั่งในการรับข้อมูลจากคีย์บอร์ด 1. คำสั่ง printf() 1. คำสั่ง scanf() 2. คำสั่ง putchar() 2. คำสั่ง getchar() และ getch() 3. คำสั่ง puts() 3. คำสั่ง gets() แสดงผลออกทางหน้าจอ การแสดงผลข้อมูลออกทางหน้าจอสามารถทำได้ง่าย โดยเรียกใช้คำสั่งหรือฟังก์ชันมาตรฐานที่ภาษาซีเตรียมไว้ให้ใช้ คำสั่ง printf() คำสั่ง 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 ในภาษาซีมี อักขระควบคุมการแสดงผลหลายรูปแบบด้วยกัน ดังแสดงต่อไปนี้ อักขระควบคุมการแสดงผล ความหมาย การนำอักขระควบคุมการแสดงผลมาใช้ เราต้องเขียนอักขระควบคุมการแสดงผลไว้ภายในเครื่องหมาย “ ” ดังแสดงตัวอย่างต่อไปนี้ ควบคุมขนาดพื้นที่แสดงผล ตามปกติในการแสดงผลโปรแกรมจะเตรียมพื้นที่ให้พอดีกับข้อความ เช่น ถ้าจะแสดงข้อความ HELLO ซึ่งมี 5 ตัวอักษร โปรแกรมจะจัดเตรียมพื้นที่ไว้ให้พอดีสำหรับ 5 ตัวอักษร ดังแสดงรูปต่อไปนี้ แต่เราสามารถเพิ่มพื้นที่ในการแสดงผลได้ตามต้องการ เช่น กำหนดให้แสดงข้อความ HELLO ในพื้นที่ขนาด 8 ตัวอักษร โปรแกรมจะแสดงข้อความชิดด้านขวาของพื้นที่ที่จองไว้ โดยจะเว้นพื้นที่ว่างทางด้านซ้ายอีก 3 ช่องที่เหลือเอาไว้ ดังรูป วิธีกำหนดขนาดพื้นที่การแสดงผล ให้ใส่ตัวเลขขนาดของพื้นที่ที่ต้องการไว้หลังเครื่องหมาย % ในรหัสควบคุมรูปแบบ ดังแสดงตัวอย่างต่อไปนี้ ในกรณีที่ต้องการเปลี่ยนจากการแสดงผลชิดขอบด้านขวาให้ชิดขอบด้านซ้ายแทน สามารถทำได้ โดยใส่เครื่องหมาย - ไว้หน้าตัวเลขระบุขนาดพื้นที่ ดังแสดงตัวอย่างต่อไปนี้ ควบคุมตำแหน่งตัวเลขหลังจุดทศนิยม นอกจากนี้ในการแสดงผลตัวเลขหลังจุดทศนิยม ตามปกติถ้าไม่ได้กำหนดค่าใด ๆ เพิ่มเติม เมื่อใช้รหัสควบคุมรูปแบบ %f โปรแกรมจะแสดงตัวเลขทศนิยมทั้งหมด 6 ตำแหน่ง ในกรณีที่เราต้องการตัดให้แสดงตัวเลขหลังจุดทศนิยมเท่าที่จำเป็น (เช่น 2 หรือ 3 ตำแหน่ง) ก็สามารถกำหนดค่าเพิ่มไปกับรหัสควบคุมรูปแบบได้ ดังต่อไปนี้ คำสั่ง putchar() ในการแสดงผลตัวอักษรหรืออักขระ ( char ) ออกทางหน้าจอ นอกจากใช้คำสั่ง printf พร้อมกับกำหนดรหัสควบคุมรูปแบบ %c แล้ว เราสามารถเรียกใช้คำสั่งสำหรับแสดงตัวอักษรหรืออักขระโดยเฉพาะได้อีกด้วย โดยคำสั่งนั้นคือ คำสั่ง putchar() ซึ่งมีรูปแบบการเรียกใช้คำสั่ง ดังแสดงต่อไปนี้ putchar(ch); ch : ตัวอักษรหรืออักขระเขียนอยู่ภายในเครื่องหมาย ‘c' หรือตัวแปรชนิด char |
แสดงผลให้เป็นระเบียบด้วยอักขระควบคุมการแสดงผล
นอกจากนี้เรายังสามารถจัดรูปแบบการแสดงผลให้ดูเป็นระเบียบมากขึ้น เช่น การขึ้นบรรทัดใหม่หลังแสดงข้อความ หรือเว้นระยะแท็บระหว่างข้อความ โดยใช้อักขระควบคุมการแสดงผลร่วมกับคำสั่ง printf ในภาษาซีมี อักขระควบคุมการแสดงผลหลายรูปแบบด้วยกัน ดังแสดงต่อไปนี้ อักขระควบคุมการแสดงผล ความหมาย \n ขึ้นบรรทัดใหม่ \t เว้นช่องว่างเป็นระยะ 1 แท็บ (6 ตัวอักษร) \r กำหนดให้เคอร์เซอร์ไปอยู่ต้นบรรทัด \f เว้นช่องว่างเป็นระยะ 1 หน้าจอ \b ลบอักขระสุดท้ายออก 1 ตัว การนำอักขระควบคุมการแสดงผลมาใช้ เราต้องเขียนอักขระควบคุมการแสดงผลไว้ภายในเครื่องหมาย “ ” ดังแสดงตัวอย่างต่อไปนี้ ควบคุมขนาดพื้นที่แสดงผล ตามปกติในการแสดงผลโปรแกรมจะเตรียมพื้นที่ให้พอดีกับข้อความ เช่น ถ้าจะแสดงข้อความ HELLO ซึ่งมี 5 ตัวอักษร โปรแกรมจะจัดเตรียมพื้นที่ไว้ให้พอดีสำหรับ 5 ตัวอักษร ดังแสดงรูปต่อไปนี้ แต่เราสามารถเพิ่มพื้นที่ในการแสดงผลได้ตามต้องการ เช่น กำหนดให้แสดงข้อความ HELLO ในพื้นที่ขนาด 8 ตัวอักษร โปรแกรมจะแสดงข้อความชิดด้านขวาของพื้นที่ที่จองไว้ โดยจะเว้นพื้นที่ว่างทางด้านซ้ายอีก 3 ช่องที่เหลือเอาไว้ ดังรูป วิธีกำหนดขนาดพื้นที่การแสดงผล ให้ใส่ตัวเลขขนาดของพื้นที่ที่ต้องการไว้หลังเครื่องหมาย % ในรหัสควบคุมรูปแบบ ดังแสดงตัวอย่างต่อไปนี้ ในกรณีที่ต้องการเปลี่ยนจากการแสดงผลชิดขอบด้านขวาให้ชิดขอบด้านซ้ายแทน สามารถทำได้ โดยใส่เครื่องหมาย - ไว้หน้าตัวเลขระบุขนาดพื้นที่ ดังแสดงตัวอย่างต่อไปนี้ ควบคุมตำแหน่งตัวเลขหลังจุดทศนิยม นอกจากนี้ในการแสดงผลตัวเลขหลังจุดทศนิยม ตามปกติถ้าไม่ได้กำหนดค่าใด ๆ เพิ่มเติม เมื่อใช้รหัสควบคุมรูปแบบ %f โปรแกรมจะแสดงตัวเลขทศนิยมทั้งหมด 6 ตำแหน่ง ในกรณีที่เราต้องการตัดให้แสดงตัวเลขหลังจุดทศนิยมเท่าที่จำเป็น (เช่น 2 หรือ 3 ตำแหน่ง) ก็สามารถกำหนดค่าเพิ่มไปกับรหัสควบคุมรูปแบบได้ ดังต่อไปนี้ ตัวอย่างการแสดงผลจำนวนทศนิยม โดยที่มีการกำหนดตำแหน่งทศนิยม แสดงได้ดังนี้ คำสั่ง putchar() ในการแสดงผลตัวอักษรหรืออักขระ ( char ) ออกทางหน้าจอ นอกจากใช้คำสั่ง printf พร้อมกับกำหนดรหัสควบคุมรูปแบบ %c แล้ว เราสามารถเรียกใช้คำสั่งสำหรับแสดงตัวอักษรหรืออักขระโดยเฉพาะได้อีกด้วย โดยคำสั่งนั้นคือ คำสั่ง putchar() ซึ่งมีรูปแบบการเรียกใช้คำสั่ง ดังแสดงต่อไปนี้ putchar(ch); ch : ตัวอักษรหรืออักขระเขียนอยู่ภายในเครื่องหมาย ‘c' หรือตัวแปรชนิด char คำสั่ง puts() เป็นคำสั่งสำหรับแสดงผลข้อความออกทางหน้าจอ มีรูปแบบการใช้คำสั่งดังนี้ 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() ซึ่งมีรูปแบบการเรียกใช้ดังต่อไปนี้ gets(str); str : ตัวแปรสำหรับเก็บข้อความที่รับเข้ามาจากคีย์บอร์ด ซึ่งจะต้องสร้างเตรียมไว้ก่อนที่จะเรียกใช้คำสั่ง gets() |