ในบทความนี้ผมจะมากล่าวถึงเรื่องคำสั่งในการรับและแสดงผลข้อมูล (I/O Function) คือ printf() และ scanf() ที่ใช้ในภาษา C กันนะครับ ซึ่งเวลาที่เราต้องการให้โปรแกรมของเรารับข้อมูลเข้าไปหรือแสดงผลการคำนวณออกมาทางหน้าจอ เราจำเป็นต้องใช้ฟังก์ชันทั้ง 2 มาใช้งานให้ถูกต้อง ลองมาดูกันเลยครับ
ฟังก์ชัน printf()
เป็นฟังก์ชันที่ใช้ในการแสดงผลข้อมูลออกทางจอภาพ มีรูปแบบดังนี้
printf(control, argument)
|
เช่น printf(“i = %d \n”,i); จะสังเกตว่า ภายใน “ “ จะมีเครื่องหมาย % อยู่ซึ่งเราจะเรียกว่า Format Code ซึ่งจะเป็นตัวกำหนดให้ข้อมูลที่อยู่ในตำแหน่งหลังเครื่องหมาย , แสดงออกมา โดยจะมีความหมายดังตาราง
ลองมาดูตัวอย่างจากโปรแกรมต่อไปนี้ครับ
อธิบายโปรแกรม
จากโปรแกรมนี้เราจะกำหนดตัวแปรออกเป็นชนิดต่างๆ 4 ชนิด แล้วกำหนดค่าเริ่มต้นให้กับตัวแปรเหล่านั้นแล้วให้แสดงผลลัพธ์ที่ตัวแปรเหล่านั้นเก็บไว้ออกมาทางจอภาพโดยใช้ฟังก์ชัน printf() และจะต้องคำนึงถึง Format Code ด้วย
printf("a = %c\n",a); --------------> ใช้ %c เพราะ a เป็น char
printf("x = %d\n",x); --------------> ใช้ %d เพราะ x เป็น int
printf("y = %f\n",y); --------------> ใช้ %f เพราะ y เป็น float (ทศนิยม)
printf("z = %f\n",z); --------------> ใช้ %f เพราะ z เป็น double (ทศนิยม)
นอกจากนั้นการแสดงผลลัพธ์ที่เป็นจุดทศนิยมเราสามารถกำหนดได้ว่าจะให้มีทศนิยมกี่ตำแหน่งโดยการกำหนดที่ Format Code ดังตัวอย่างต่อไปนี้
printf("y = %.2f\n",y); --------------> ใส่ค่า .2 หมายถึง แสดงทศนิยม 2 ตำแหน่ง
printf("z = %.3f\n",z); --------------> ใส่ค่า .3 หมายถึง แสดงทศนิยม 3 ตำแหน่ง
ฟังก์ชัน scanf()
เป็นฟังก์ชันที่ใช้ในการแสดงผลข้อมูลออกทางจอภาพ มีรูปแบบดังนี้
scanf(control, argument)
|
ฟังก์ชัน scanf จะมีลักษณะคล้ายกับ printf โดยเราจะต้องใส่ Format Code ไว้ในเครื่องหมาย " " และระบุตัวแปรที่จะมารับข้อมูลจากผู้ใช้ที่ป้อนเข้ามา โดยจะต้องมี & นำหน้าตัวแปรที่เราต้องการใส่ค่าเสมอ ยกเว้นตัวแปรที่เป็นอะเรย์ ลองมาดูตัวอย่างจากโปรแกรมต่อไปนี้ครับ
อธิบายโปรแกรม
จากตัวอย่างมีการประกาศตัวแปร คือ a เป็นตัวแปรชนิด int ถัดมาเป็นการแสดงคำพูด Enter number : ที่หน้าจอ จากนั้นฟังก์ชัน scanf() จะทำงานโดยการรอรับข้อมูลจากผู้ใช้ให้เราพิมพ์ตัวเลขจำนวนเต็มใส่ลงไป ตัวเลขที่เราพิมพ์ลงไปนั้นจะถูกเก็บไว้ที่ตัวแปร a แล้วจึงแสดงผลลัพธ์ของตัวเลขนั้นอีกครั้งที่จอภาพ
scanf("%d" ,&a); --------------> %d เป็นการระบุรูปแบบของตัวแปรที่จะมารองรับค่า, &a คือ ตัวแปรที่จะมารับค่า
สำหรับฟังก์ชัน printf() และ scanf() นั้นจะเป็นฟังก์ชันพื้นฐานที่จะใช้กันบ่อยๆ ในภาษา C เราควรฝึกใช้งานให้คล่องนะครับ ส่วนใน C++ ฟังก์ชันทั้ง 2 นี้จะถูกเปลี่ยนแปลงไปและการใช้งานก็ต่างกันนิดหน่อยซึ่งผมจะยังไม่กล่าวถึงในตอนนี้นะครับ