ใบความรู้ที่ 4
เรื่อง
การรับและแสดงผลข้อมูล
การทำงานของโปรแกรมส่วนใหญ่มักจะเป็นการเชื่อมโยงกับผู้ใช้แบบ
2 ทิศทาง นั่นก็คือ
ทั้งภาคของการแสดงผลการทำงานออกทางจอภาพ และภาคการรับข้อมูลจากผู้ใช้เข้ามาทางแป้นพิมพ์
เพื่อร่วมในการประเมินผลของโปรแกรม ซึ่งในภาครับข้อมูลจากผู้ใช้
ในภาษาซีกำหนดฟังก์ชันมาตรฐานเอาไว้ให้เรียกใช้แล้ว เช่นเดียวกับภาคของการแสดงผล
ซึ่งอธิบายรายละเอียดของฟังก์ชัน เหล่านั้นได้ดังนี้คือ
การรับข้อมูลจากแป้นพิมพ์ด้วยฟังก์ชัน
scanf();
ฟังก์ชันนี้อยู่ใน header ไฟล์ชื่อ stdio.h เป็นฟังก์ชันสำหรับรับข้อมูลมาจากแป้นพิมพ์
ที่สามารถรับข้อมูลได้ทุกประเภทไม่ว่าจะเป็นชนิด char , short , int , long
, float , double , string โดยมีรูปแบบการเรียกใช้ดังนี้
scanf("ตัวแทนตัวแปร",&ชื่อตัวแปร);
โดยที่...
ตัวแทนตัวแปร คือ
ส่วนที่ใช้รหัสควบคุมรูปแบบ เพื่อกำหนดชนิดของข้อมูลที่จะรับเข้ามา จากแป้นพิมพ์
โดยรหัสควบคุมรูปแบบจะใช้รหัสเดียวกันกับ รหัสรูปแบบของฟังก์ชัน printf ()
ชื่อตัวแปร คือชื่อตัวแปรที่ใช้เก็บค่าของข้อมูลที่รับเข้ามาจากแป้นพิมพ์
โดยชนิดของตัวแปรจะต้องตรงกับรหัสควบคุมที่กำหนดไว้ นอกจากนี้จะต้องใช้
เครื่องหมาย & นำหน้าชื่อตัวแปรด้วย
ยกเว้นตัวแปรที่เป็นชนิด string อาจละเว้นการใช้เครื่องหมาย & ได้
ตารางแสดงตัวแทนตัวแปรตามชนิดของข้อมูล
ตัวแทนตัวแปร
|
ชนิดตัวแปร
|
%d
|
ตัวเลขจำนวนเต็ม (int)
|
%f
|
ตัวเลขทศนิยม
(float)
|
%c
|
ตัวอักขระ (char)
|
%ld
|
ตัวเลขจำนวนเต็มแบบยาว
(long)
|

1
|
#include <stdio.h>
|
|
2
|
#include <conio.h>
|
|
3
|
int main()
|
|
4
|
{
|
|
5
|
char
name[15],lname[20];
|
// ให้ตัวแปร name
และ lnameเป็น
string |
6
|
printf("Input
your name and lname : ");
|
// แสดงข้อความ Input
your name
and lname : |
7
|
scanf("%s%s",name,lname) ;
|
//รอรับข้อมูลจากแป้นพิมพ์เพื่อเก็บไว้
ที่ตัวแปร name และ lname |
8
|
printf("\n\n\n");
|
// ขึ้นบรรทัดใหม่จำนวน
3 บรรทัด
|
9
|
printf("Hello
khun %s",name);
|
// แสดงข้อความ Hello
khunตามด้วย
ข้อมูลในตัวแปร name ที่ %s |
10
|
printf("
");
|
// แสดงช่องว่าง
|
11
|
printf("%s",lname);
|
// แสดงข้อมูลในตัวแปร
lnameณ
ตำแหน่ง %s |
12
|
getch();
|
// ฟังก์ชัน getch()
ใช้หยุดดูผลจนกว่า
กดแป้นพิมพ์ใดๆ |
13
|
return
0;
|
// คืนค่า 0 ให้ฟังก์ชัน main เพื่อ
บอกว่าโปรแกรมทำงานสมบูรณ์ |
14
|
}
|
|
ผลที่ได้จากการ Run

ตัวอย่างที่ 2 การใช้ฟังก์ชัน
scanfเพื่อรับข้อมูลมาจากแป้นพิมพ์ที่เป็นตัวเลขสองจำนวน
แล้วมาคูณกัน
แล้วมาคูณกัน
1
2 3 4 |
#include <stdio.h>
#include <conio.h> int main() { |
|
5
6 7 8 9 10 |
inta,b,c;
printf("Input 1st number : "); scanf("%d",&a); printf("Input 2nd number : "); scanf("%d",&b); c=a*b; |
// ประกาศตัวแปร a,b,cเป็นชนิด integer
// แสดงข้อความ Input 1st number : บนจอภาพ // รอรับตัวเลขตัวที่หนึ่งจากแป้นพิมพ์ ไปเก็บไว้ที่ตัวแปร a // แสดงข้อความ Input 2nd number : บนจอภาพ // รอรับตัวเลขตัวที่สองจากแป้นพิมพ์ ไปเก็บไว้ที่ตัวแปร b // นำค่าของ a คูณกับค่าของ b ผลลัพธ์ นำไปเก็บที่ตัวแปร c |
11
12 13 14 15 |
printf("\n\n\n");
printf("%d x %d = %d",a,b,c); getch(); return 0; } |
// ขึ้นบรรทัดใหม่จำนวน
3 บรรทัด
// แสดงค่าของ a b c ณ ตำแหน่งของ %d ทั้งสามตัวตามลำดับ // ฟังก์ชัน getch() ใช้หยุดดูผลจนกว่าจะกด แป้นพิมพ์ใดๆ // คืนค่า 0 ให้ฟังก์ชัน main เพื่อบอกว่า โปรแกรมทำงานสมบูรณ์ |
ผลที่ได้จากการ
Run

การรับข้อมูลจากแป้นพิมพ์ด้วยฟังก์ชัน
gets();
getsมาจากคำว่า get string อยู่ใน header ไฟล์ชื่อ stdio.hเป็นฟังก์ชันสำหรับรับข้อมูลชนิด string
เข้ามาจากแป้นพิมพ์ แล้วนำไปเก็บไว้ที่ตัวแปร
การอ่านข้อมูลด้วยฟังก์ชัน gets นี้
ถ้าข้อมูลหรือข้อความที่ป้อนเข้ามามีช่องว่าง ฟังก์ชัน gets ก็สามารถรับข้อมูลทั้งหมดเข้ามาได้โดยไม่มีปัญหาใด
ๆ ฟังก์ชัน gets จะหยุดรับข้อมูลเมื่อมีการกดแป้น Enter
เท่านั้น ฟังก์ชัน gets จะใส่ \0 ไว้ท้ายข้อความโดยอัตโนมัติด้วย

gets(ตัวแปรชนิดตัวอักษรแบบชุด หรือ string_variable);
โดยที่ string_variable หมายถึงตัวแปรชนิดข้อความ
หรือ string ที่ใช้เก็บค่าที่ป้อนข้อมูลมาจากแป้นพิมพ์
เช่น gets(school_name);

1
2 3 4 |
#include <stdio.h>
#include <conio.h> int main() { |
|
5
6 7 8 |
char name[25];
printf("What is your name : "); gets(name); printf("\n\n\n"); |
// ประกาศตัวแปร name
เป็นชนิด string // แสดงข้อความ What is your name : บนจอภาพ // รอรับชื่อที่ป้อนเข้ามาจาก แป้นพิมพ์นำไปเก็บไว้ ที่ตัวแปร name // ขึ้นบรรทัดใหม่จำนวน 3 บรรทัด |
9
10 11 12 |
printf("Hello
%s, nice to meet you.",name);
getch(); return 0; } |
// แสดงชื่อที่รับมาจากแป้น
พิมพ์คือตัวแปร name ณ ตำแหน่ง %s // ฟังก์ชัน getch() ใช้หยุดดูผล จนกว่ากดแป้นพิมพ์ใดๆ // คืนค่า 0 ให้ฟังก์ชัน main เพื่อบอกว่า โปรแกรม ทำงานสมบูรณ์ |
ผลที่ได้จากการ Run

จากตัวอย่างที่ 3 แสดงให้เห็นว่าการรับชื่อและนามสกุล
เข้ามาเก็บไว้ที่ตัวแปร name โดยที่ข้อมูลที่ป้อนเข้ามามีช่องว่างระหว่างชื่อ
และนามสกุล ฟังก์ชัน gets ก็รับข้อมูลมาได้ทั้งหมด
ซึ่งต่างจากฟังก์ชัน scanfโดยในฟังก์ชัน scanfถ้าข้อมูลที่ป้อนเข้ามามีช่องว่าง
จะต้องใช้ตัวแปรสองตัวมารับค่าที่ป้อนเข้ามา ตามตัวอย่างที่
1 บรรทัดที่ 7 จะเห็นว่าต้องใช้ตัวแปร
name และ lnameเพื่อรับชื่อและนามสกุลเป็นคนละตัวกัน

จากตัวอย่างข้างบน เนื่องจากตัวแปร name เป็นตัวแปรตัวอักษรแบบชุด หรือที่เรียกว่า Stringในการกำหนดตัวแทนตัวแปรในคำสั่ง printf(); จะใช้สัญลักษณ์ %s แทนตัวแปร
การรับข้อมูลจากแป้นพิมพ์ด้วยฟังก์ชัน getchar();
ฟังก์ชัน getchar เป็นฟังก์ชันที่อยู่ใน
header ไฟล์ conio.h ที่ใช้รับข้อมูลชนิด
char เข้ามาจากแป้นพิมพ์ ข้อมูลที่ป้อนเข้ามาด้วยฟังก์ชัน getcharนี้ จะต้องต้องกดแป้น Enter โปรแกรมจึงจะทำงานต่อไป
และข้อมูลที่ป้อนเข้าไปจะปรากฏให้เห็นบนจอภาพด้วย

variable=getchar();
โดยที่ variable คือชื่อของตัวแปรที่ต้องเป็นชนิด
char เพื่อรับข้อมูลที่ป้อนเข้ามาทางแป้นพิมพ์

ch=getchar();
หมายถึง รอรับตัวอักขระที่ป้อนเข้ามาเพียง 1 ตัวโดยตัวอักษรที่ป้อนเข้ามาจะปรากฏบนจอภาพแล้วต้องกดแป้น
Enter

1
2 3 4 |
#include <stdio.h>
#include <conio.h> int main() { |
|
5
6 7 8 9 |
char ch;
printf("Enter your favorite letter : "); ch=getchar(); printf("\n\n\n"); printf("you press %c ",ch); |
// ประกาศตัวแปร chเป็นชนิด char
// แสดงข้อความ Enter your favorite letter : บนจอภาพ // รอรับการป้อนตัวอักษร 1 ตัวจาก แป้นพิมพ์นำไปเก็บไว้ที่ตัวแปร ch // ขึ้นบรรทัดใหม่จำนวน 3 บรรทัด // แสดงตัวอักขระที่ป้อนเข้ามา ณ ตำแหน่ง %c |
10
11 12 |
getch();
return 0; } |
// ฟังก์ชัน getch()
ใช้หยุดดูผลจนกว่า
กดแป้นพิมพ์ใดๆ // คืนค่า 0 ให้ฟังก์ชัน main เพื่อบอกว่า โปรแกรมทำงานสมบูรณ์ |
ผลที่ได้จากการ Run

![]()
ฟังก์ชัน getche เป็นฟังก์ชันที่อยู่ใน
header ไฟล์ conio.h ที่ใช้รับข้อมูลชนิด char เข้ามาจากแป้นพิมพ์
ข้อมูลที่ป้อนเข้ามาด้วยฟังก์ชัน getcheนี้
จะถูกเก็บไว้ในตัวแปรที่รองรับโดยไม่ต้องกดแป้น Enter และข้อมูลที่ป้อนเข้าไปจะปรากฏให้เห็นบนจอภาพ
![]()
variable=getche();
โดยที่ variable คือชื่อของตัวแปรที่ต้องเป็นชนิด
char เพื่อรับข้อมูลที่ป้อนเข้ามาทางแป้นพิมพ์
![]()
ch=getche();
หมายถึง รอรับตัวอักขระที่ป้อนเข้ามาเพียง 1 ตัวนำไปเก็บที่ตัวแปร
chโดยตัวอักษรที่ป้อนเข้ามา จะปรากฏบนจอภาพ และไม่ต้องกดแป้น
Enter
![]()
|
|||||||||
|
ไม่มีความคิดเห็น:
แสดงความคิดเห็น