250 likes | 353 Views
การรับและแสดงผลข้อมูล. บทนำ. ภาษาซีเมื่อต้องการเขียนโปรแกรมเพื่อรับและแสดงผลข้อมูล ต้องเรียกใช้ฟังก์ชันที่มีอยู่ในไฟล์ห้องสมุด (library) ฟังก์ชันเหล่านี้จะรวบรวมไว้ภายใต้ไฟล์การรับและการแสดงผลมาตรฐาน (Standard Input and Output File)
E N D
การรับและแสดงผลข้อมูลการรับและแสดงผลข้อมูล
บทนำ • ภาษาซีเมื่อต้องการเขียนโปรแกรมเพื่อรับและแสดงผลข้อมูล ต้องเรียกใช้ฟังก์ชันที่มีอยู่ในไฟล์ห้องสมุด (library) • ฟังก์ชันเหล่านี้จะรวบรวมไว้ภายใต้ไฟล์การรับและการแสดงผลมาตรฐาน (Standard Input and Output File) • เมื่อต้องการเรียกใช้ฟังก์ชันดังกล่าวสามารถทำได้โดยใช้คำสั่ง #include กำหนดไว้ในส่วนหัวของโปรแกรม
ประเภทของฟังก์ชันมาตราฐานประเภทของฟังก์ชันมาตราฐาน • แบ่งออกได้เป็น 2 ประเภท ได้แก่ 1. ฟังก์ชันมาตราฐานสำหรับการรับและแสดงผลข้อมูลที่อยู่ในไฟล์ stdio.h ได้แก่ ฟังก์ชัน printf() และ scanf() 2. ฟังก์ชันมาตราฐาน สำหรับการรับและแสดงผลครั้งละหนึ่งตัวอักษรที่อยู่ในไฟล์ conio.h (Console I/O File) ได้แก่ ฟังก์ชัน getchar(), getche(), getch() และ putchar()
ฟังก์ชัน printf() • printf() เป็นฟังก์ชันหนึ่งในไฟล์ stdio.h สำหรับแสดงผลข้อมูล เนื่องจาก Turbo C ไม่มีฟังก์ชันเฉพาะ (Built-in Function) • printf() เป็นโปรแกรมย่อยสำหรับการพิมพ์ข้อมูล ตัวแปร นิพจน์ หรือข้อความต่างๆ ออกทางจอภาพ • รูปแบบ ส่วนควบคุมการพิมพ์กำหนดในเครื่องหมาย “” มีทั้งข้อความและรูปแบบ % นำหน้า ส่วนที่ติดตามคำสั่งได้แก่ ค่าคงที่ ตัวแปร นิพจน์หรือข้อความที่ต้องการแสดงผล
ตัวอย่าง #include “stdio.h” main() { int total=100; printf(“The total is %d”,total); } The total is 100
รูปแบบการพิมพ์ของฟังก์ชัน printf() มีดังนี้
การใช้ String Constant ควบคุมการแสดงผล • String Constant นำหน้าด้วยเครื่องหมาย “\ “ • ใช้ร่วมกับเครื่องหมาย % เพื่อควบคุมการแสดงผล • ยกตัวอย่างเช่น \n หมายถึง การควบคุมให้ขึ้นบรรทัดใหม่ \t หมายถึง การควบคุมให้เลื่อนตามระยะ tab • การใช้ String Constant ร่วมกับรหัสรูปแบบการพิมพ์ (%) สามารถกำหนดอะไรก่อนหลังได้ตามต้องการ โดยไม่มีผลต่อการรันโปรแกรม
ฟังก์ชัน scanf() • scanf() เป็นฟังก์ชันพื้นฐานที่ใช้ควบคู่กับฟังก์ชัน printf() ใช้สำหรับรับข้อมูลที่อ่านจากแป้นพิมพ์ตามรูปแบบที่กำหนดด้วยเครื่องหมาย % เข้าไปเก็บไว้ในตัวแปร Argument • เมื่อผู้ใช้กดปุ่ม Enter โดยที่ตัวแปรเหล่านี้จะเป็น Pointer ที่ชี้ไปยังชนิดของข้อมูลที่สอดคล้องกับรูปแบบที่กำหนดไว้ • เครื่องหมาย & (Ambersand) จะใช้นำหน้าตัวแปรที่เตรียมไว้สำหรับเก็บข้อมูลที่เป็นตัวเลขและตัวอักษร • รูปแบบของฟังก์ชัน รูปแบบของการรับข้อมูล กำกับด้วย % ตัวแปรที่รับค่าจากแป้นพิมพ์เข้ามาเก็บไว้
รูปแบบการรับข้อมูลของฟังก์ชัน scanf()
รูปแบบการรับข้อมูลของฟังก์ชัน scanf()
การป้อนข้อมูลทางแป้นพิมพ์การป้อนข้อมูลทางแป้นพิมพ์ • เมื่อป้อนข้อมูลทางแป้นพิมพ์ ข้อมูลที่จะป้อนต้องสอดคล้องกับ Format String ของฟังก์ชัน scanf() • ตัวอย่าง int x,y; scanf(“%d %d”,&x,&y); • โปรแกรมจะรับเลขจำนวนเต็ม 2 ค่านำไปเก็บไว้ในตัวแปร x และ y
ไม่ต้องเก็บเครื่องหมาย “-” การป้อนข้อมูลทางแป้นพิมพ์ • ตัวอย่าง int x; char y; scanf(“%d%c”,&x,&y); //800$ int one,two; scanf(“%d%*c%d”,&one,&two); //585-8541 int x,y; charc; scanf(“%d%c%d”,&x,&c,&y); //10 20
การรับชุดตัวอักษรทางแป้นพิมพ์การรับชุดตัวอักษรทางแป้นพิมพ์ • เมื่อต้องการรับชุดตัวอักษร (String) สามารถทำได้ดังนี้ • ตัวอย่าง char str[]; //ABCDEFGHIJKLMNOPQRST scanf(“%10s”,str); //ABCDEFGHIJ scanf(“%20s”,str); //ABCDEFGHIJKLMNOPQRST scanf(“%[ABC]”,str); //ABC scanf(“%[A-K]”,str); //ABCDEFGHIJK scanf(“%[^ABCD]”,str); //EFGHIJKLMNOPQRST
ฟังก์ชัน getchar() • เป็นฟังก์ชันมาตราฐานที่อยู่ใน Library ของ Turbo C • ใช้สำหรับอ่านข้อมูลแบบตัวอักษร (Character) จากการกดแป้นพิมพ์ทีละตัวอักษร • กรณีที่ต้องการอ่านข้อมูลที่มีความยาวมากกว่า 1 ตัวอักษร สามารถทำได้โดยเรียกใช้ฟังก์ชันนี้หลายครั้ง โดยอาจจะใช้ร่วมกับคำสั่งประเภท Loop ก็ได้ • ฟังก์ชันนี้ไม่มี Argument เป็นพารามิเตอร์ getchar(); อ่านข้อมูลครั้งละ 1 ตัวต้องกดแป้น Enter เมื่อสิ้นสุดและจะแสดงตัวอักษรบนจอภาพ
ตัวอย่างการใช้งานฟังก์ชัน getchar() #include “stdio.h” main() { char ch; ch=getchar(); printf(“You typed : %c”,ch); }
ฟังก์ชัน getche() • เป็นฟังก์ชันที่ถูกระบุใน conio.h • ใช้สำหรับอ่านข้อมูลแบบตัวอักษร โดยจะรับข้อมูลทันทีที่กดแป้นพิมพ์โดยไม่ต้องรอการกด Enter • ทำการอ่านข้อมูลครั้งละ 1 ตัวอักษร เข้ามาเก็บในชื่อของตัวเองจึงไม่มีพารามิเตอร์ใดๆเป็น Argument และข้อมูลที่ได้จากการอ่านจะปรากฎบนจอภาพด้วย getche(); อ่านข้อมูลครั้งละ 1 ตัวโดยไม่ต้องกดแป้น Enter และจะแสดงตัวอักษรบนจอภาพ
ตัวอย่างโปรแกรมสำหรับแสดงรหัส ASCII #include “stdio.h” #include “conio.h” main(){ char ch; printf(“Enter a character :”); ch=getche(); printf(“ASCII code is %d”,ch); }
ตัวอย่างโปรแกรม menu การป้อน A,S,M หรือ D เพื่อเลือกการทำงาน #include “stdio.h” #include “conio.h” main(){ int a,b; char ch; printf(“Do you want to :\n”); printf(“Add, Substract, Multiply or Devide ?\n”); printf(“Enter first letter :”); ch=getche(); printf(“\n”); printf(“Enter first number :”); scanf(“%d”,&a); printf(“Enter second number :”); scanf(“%d”,&b); if(ch == ‘A’) printf(“%d”,a+b); if(ch == ‘S’) printf(“%d”,a-b); if(ch == ‘M’) printf(“%d”,a*b); if(ch == ‘D’) printf(“%d”,a/b); }
ฟังก์ชัน getch() • เป็นฟังก์ชันที่อยู่ภายใต้ conio.h เช่นเดียวกับฟังก์ชัน getche() • ใช้สำหรับอ่านข้อมูลแบบตัวอักษรจากการกดแป้นพิมพ์ทีละตัว • เครื่องจะรับข้อมูลทันทีที่กดแป้นโดยไม่ต้องรอกด Enter แต่จะไม่แสดงตัวอักษรที่ป้อนปรากฎให้เห็น getch();
ฟังก์ชัน putchar() • สั่งให้คอมพิวเตอร์แสดงผลบนจอภาพครั้งละหนึ่งตัวอักษร ฟังก์ชันนี้จะมี Argument ภายในวงเล็บ เป็นตัวแปรชนิด Character ที่จะส่งข้อมูลไปแสดงผล • ส่วนของ Argument อาจจะเป็นฟังก์ชันซ้อนอยู่เป็นพารามิเตอร์ก็ได้ แต่ค่าของฟังก์ชันที่ซ้อนอยู่นั้นจะต้องได้ผลลัพธ์เพียง 1 ตัวอักษรเท่านั้น putchar(argument); ตัวแปรหรือฟังก์ชันที่เก็บค่าตัวอักษร 1 ตัว ฟังก์ชันที่แสดงผลออกทางจอภาพครั้งละ 1 ตัวอักษร
ตัวอย่างการใช้งานฟังก์ชัน puchar() #include “stdio.h” main() { char x; x=getchar(); putchar(x); } putchar(getchar());