6. การรับขอมูลและแสดงผลขอมูล
ภาษาซีไดเตรียมฟงกชันมาตรฐานที่ใชในการรับและแสดงผลขอมูลใหกับผูพัฒนาโปรแกรมหลาย
ฟงกชัน แตในที่นี้จะกลาวถึงเฉพาะฟงกชันในการรับขอมูล คือ ฟงกชัน scanf( ) และฟงกชันในการแสดงผลขอมูลคือฟงกชัน print( ) ในสวนของการใชงานพื้นฐาน ซึ่งกอนจะใชงานฟงกชันดังกลาวที่สวนหัวของโปรแกรมจะตองมีคําสั่ง
#include <stdio.h>
6.1 การรับขอมูล
ฟงกชันที่ใชในการรับขอมูลมีรูปแบบของการใชงานคือ
scanf ( รูปแบบ , อารกิวเมนต1, อารกิวเมนต2, … ) ;
ในการรับขอมูลผูเขียนโปรแกรมจะตองกํ าหนดรูปแบบของขอมูลที่ตองการรับซึ่งสอดคลองกับชนิดของขอมูลที่ตองการรับเขา โดยที่ผูใชตองสงตํ าแหนง (หรือแอดเดรสในหนวยความจํ า – Address) ของตัวแปรที่ตองการรับเขาไปยังฟงกชัน โดยระบุในตํ าแหนงของอารกิวเมนต
ตัวอยางเชน ตองการรับขอมูลเดือนและปเปนจํ านวนเต็ม จะตองใชคําสั่ง
int month, year;
scanf(“%d %d”, &month, &year);12
จากตัวอยางรูปแบบ คือ “%d %d” บอกใหรูวาตองรับขอมูล 2 ตัว โดยที่ขอมูลนั้นแยกจากกันดวย
ชองวาง %d ตัวแรกแทนขอมูลตัวแรกที่ปอนเขาสูระบบจะนํ าไปเก็บที่ตัวแปร month %d ตัวที่ 2 แทนขอมูลตัวที่ 2 ที่ปอนเขาสูระบบจะถูกนํ าไปเก็บที่ตัวแปร year ในที่นี้จะระบุตํ าแหนงของตัวแปรในหนวยความจําดวยเครื่องหมาย & (Address Operator)
ตาราง 1.2 แสดงรูปแบบของการรับขอมูล
รูปแบบ คําอธิบายการใชงาน
d, i รับขอมูลจํ านวนเต็มและแปลงขอมูลเปน int
ld รับขอมูลจํ านวนเต็มและแปลงขอมูลเปน long
u รับขอมูลเปนจํ านวนเต็มบวกและแปลงขอมูลเปน unsigned
o รับขอมูลเปนจํ านวนเต็มบวกของเลขฐาน 8 และแปลงขอมูลเปนunsigned
x รับขอมูลเปนจํ านวนเต็มบวกของเลขฐาน 16 และแปลขอมูลเปน unsigned
c รับขอมูลเปนอักขระ 1 ตัว
s รับขอมูลเปนสตริง
f รับขอมูลทศนิยมและแปลงขอมูลเปน float
lf รับขอมูลทศนิยมและแปลงขอมูลเปน double
6.2 การแสดงผลขอมูล
การแสดงผลขอมูลสามารถทํ าไดโดยการเรียกใชฟงกชัน printf( ) มีรูปแบบคือ
printf ( รูปแบบ , อารกิวเมนต1 , อารกิวเมนต2 , … ) ;
ผูเขียนโปรแกรมสามารถสงขอความใด ๆ มายังฟงกชัน print( ) หรือสงตัวแปรมาพิมพคาโดยสงผานมาทางอารกิวเมนต ใหสอดคลองกับรูปแบบที่กํ าหนด ตัวอยางเชน
char name[ ] = “Mickey”;
int age = 20;
printf(“%s is %d years old.”, name, age);
ผลลัพธที่ไดคือ
Mickey is 20 years old.
โดยที่ %s ตัวแรกจะถูกแทนที่ดวยคาของอารกิวเมนตตัวที่ 1 คือ ตัวแปร name และ %d ตัวที่ 2 จะ
ถูกแทนที่ดวยคาของอารกิวเมนตตัวที่ 2 คือ ตัวแปร age
นอกจากนี้ผูใชยังสามารถใช printf( ) ในการพิมพขอความใด ๆ ออกทางจอภาพโดยไมจํ าเปนตองสงอารกิวเมนตเขาไปยังฟงกชันก็ได ตัวอยางเชน
printf(“Good morning.”);
ผลลัพธที่ไดคือ
Good morning.
คําสั่ง \n เปนอักขระพิเศษที่ไดกลาวถึงแลวคือ อักขระที่ใชสั่งใหมีการเวนบรรทัด (New Line) ในที่นี้
หลังจากพิมพขอความเสร็จจะมีการเวนวรรทัดเกิดเขึ้น จากตัวอยางจะเห็นวา %d ตัวที่ 3 เกิดจากการนําคาของตัวแปร x มาบวกกับตัวแปร y ไดผลลัพธเทาใดจึงสงใหกับ %d ตัวที่ 3 แสดงผล
ขอควรระวัง
- การปอนขอมูลที่เปนสตริงไมจํ าเปนตองใสเครื่องหมาย & นํ าหนาตัวแปรสตริง
- หากชื่อที่ปอนเขาสูโปรแกรมมีชองวาง เชนผูใชปอนชื่อและนามสกุล โดยมีชองวางระหวางชื่อและ
นามสกุล โปรแกรมจะรับไดเฉพาะขอมูลชื่อเทานั้น โปรแกรมไมสามารถรับขอมูล ที่มีชองวางเขามาเก็บในตัวแปรได้
ไม่มีความคิดเห็น:
แสดงความคิดเห็น