3.2 ฟังก์ชันแสดงผลข้อมูล (output functions)
ในเนื้อหาฟังก์ชันการแสดงผลข้อมูลของภาษา C มีฟังก์ชันที่ใช้ในการแสดงผลลัพธ์ออกทางจอภาพอยู่หลายฟังก์ชันที่จะกล่าวถึง ดังนี้คือ ฟังก์ชัน printf( ), ฟังก์ชัน putchar( ) และฟังก์ชัน puts( ) ซึ่งแต่ละฟังก์ชันมีรายละเอียดของการใช้งานดังนี้ 3.2.1 ฟังก์ชัน printf( ) เป็นฟังก์ชันที่ใช้ในการแสดงผลลัพธ์ออกทางจอภาพ โดยสามารถกำหนดรหัสรูปแบบข้อมูล (format code) และรหัสควบคุม (control code) ให้เหมาะสมกับข้อมูลและรูปแบบผลลัพธ์ที่ต้องการ (ดังแสดงในตารางที่ 3.2 และ 3.3) รูปแบบการใช้งานฟังก์ชัน
printf(control string, argument list); | โดยที่
control string คือ รหัสรูปแบบข้อมูลที่ใช้ในการพิมพ์ผลลัพธ์ใช้รหัสเหมือนฟังก์ชัน scanf( ) และในฟังก์ชัน printf( ) นี้ยังสามารถใช้รหัสควบคุมเพื่อช่วยจัดรูปแบบการพิมพ์ผลลัพธ์ให้สวยงามขึ้น โดยที่ control string จะต้องเขียนอยู่ภายใต้เครื่องหมาย “………” (double quotation) เช่นเดียวกับฟังก์ชัน scanf( ) argument list คือ ค่าคงที่ หรือตัวแปร หรือนิพจน์ ในกรณีที่มีค่าคงที่ ตัวแปร หรือนิพจน์หลาย ๆ ค่าให้ใช้เครื่องหมาย , (comma) คั่นระหว่างค่าคงที่ ตัวแปร หรือนิพจน์แต่ละค่า
ตารางที่ 3.2 แสดงรหัสรูปแบบข้อมูลที่สามารถใช้ในฟังก์ชัน printf( ) รหัสรูปแบบ (format code) | ความหมาย | %c | ใช้กับข้อมูลชนิดตัวอักขระตัวเดียว (single character : char) | %d | ใช้กับข้อมูลชนิดตัวเลขจำนวนเต็ม (integer : int) โดยสามารถใช้กับตัวเลขฐาน 10 เท่านั้น | %e | ใช้กับข้อมูลชนิดตัวเลขจุดทศนิยม (floating point : float) | %f, %lf | ใช้กับข้อมูลชนิด float และ double ตามลำดับ | %g | ใช้กับข้อมูลชนิด float | %h | ใช้กับข้อมูลชนิด short integer | %l | ใช้กับข้อมูลชนิด int โดยใช้กับตัวเลขฐาน 8, ฐาน 10 และฐาน 16 | %o | ใช้กับข้อมูลชนิด int โดยสามารถใช้กับตัวเลขฐาน 8 เท่านั้น | %u | ใช้กับข้อมูลชนิด unsigned int โดยใช้กับตัวเลขฐาน 10 เท่านั้น | %x | ใช้กับข้อมูลชนิด int โดยสามารถใช้กับตัวเลขฐาน 16 เท่านั้น | %s | ใช้แสดงข้อมูลชนิด string | %p | ใช้แสดงค่า address ของตัวแปรพอย์นเตอร์ | ที่มา : Gottfried, S. Byron, 1990 : 481.
ตารางที่ 3.3 แสดงรหัสควบคุมข้อมูลที่สามารถใช้ในฟังก์ชัน printf( )
รหัสควบคุม (control code) | ความหมาย | ค่า ASCII | \a | Bell | 007 | \b | Backspace | 008 | \t | Horizontal tab | 009 | \n | Newline (line feed) | 010 | \v | Vertical tab | 011 | \f | From feed | 012 | \r | Carriage return | 013 | \” | Quotation mark (“) | 034 | \’ | Apostrophe (‘) | 039 | \? | Question mark (?) | 063 | \\ | Backslash (\) | 092 | \0 | Null (ศูนย์) | 000 | \ooo | Octal number (o) | - | \xhh | Hexadecimal number (h) | - | ที่มา : Gottfried, S. Byron, 1990 : 474. เพื่อให้เกิดความเข้าใจการใช้งานฟังก์ชัน printf( ) ได้ดียิ่งขึ้นควรศึกษาโปรแกรมตัวอย่างที่ 3.8, 3.9 และ 3.10 ดังต่อไปนี้ โปรแกรมตัวอย่างที่ 3.8 แสดงโปรแกรมการใช้ฟังก์ชัน printf( ) พิมพ์ข้อความออกแสดงที่จอภาพ
| | | | | |
/* printf1.c */ #include<stdio.h> /* บรรทัดที่ 1 */ #include<conio.h> /* บรรทัดที่ 2 */ void main(void) /* บรรทัดที่ 3 */ { /* บรรทัดที่ 4 */ clrscr( ); /* บรรทัดที่ 5 */ printf("Welcome to Thailand !!!"); /* บรรทัดที่ 6 */ getch( ); /* บรรทัดที่ 7 */ } /* บรรทัดที่ 8 */ | | | | |
ผลลัพธ์ที่ได้จากโปรแกรม คำอธิบายโปรแกรม จากโปรแกรมตัวอย่างที่ 3.8 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังต่อไปนี้
บรรทัดที่ 6 คำสั่ง printf(“Welcome to Thailand !!!”); เป็นคำสั่งที่นำข้อความ Welcome to Thailand !!! แสดงที่จอภาพ และหยุดรอรับค่าใด ๆ จากคีย์บอร์ด ซึ่งถ้าเรากด enter ก็จะกลับสู่โปรแกรม โปรแกรมตัวอย่างที่ 3.9 แสดงโปรแกรมการใช้ฟังก์ชัน printf( ) ควบคู่กับ รหัสรูปแบบ %c และ %s เพื่อแสดงข้อมูลที่จอภาพ
| | | | | |
/* printf2.c */ #include<stdio.h> /* บรรทัดที่ 1 */ #include<conio.h> /* บรรทัดที่ 2 */ void main(void) /* บรรทัดที่ 3 */ { /* บรรทัดที่ 4 */ char ch='A'; /* บรรทัดที่ 5 */ char str[]="Computer"; /* บรรทัดที่ 6 */ clrscr( ); /* บรรทัดที่ 7 */ printf("%5c \t\tCHARACTER %s", ch, str); /* บรรทัดที่ 8 */ getch( ); /* บรรทัดที่ 9 */ } /* บรรทัดที่ 10 */ | | | | |
ผลลัพธ์ที่ได้จากโปรแกรม คำอธิบายโปรแกรม จากโปรแกรมตัวอย่างที่ 3.9 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังต่อไปนี้
บรรทัดที่ 5 ประกาศตัวแปรชนิดอักขระ ชื่อ ch ให้เก็บตัวอักษร A บรรทัดที่ 6 ประกาศตัวแปรชุดชนิดอักขระ ชื่อ str ให้เก็บข้อความ Computer บรรทัดที่ 8 ให้นำค่าของตัวแปร ch มาแสดงตรงตำแหน่ง %c ก่อนแสดงให้เว้นช่องว่าง 5 ช่อง และพบ \t \t คือให้เว้น tab ไป 2 ครั้ง (tab 1 ครั้ง มี 8 ช่องว่าง) แล้วค่อยพิมพ์ข้อความ CHARACTER และนำข้อความที่เก็บในตัวแปร str มาแสดงตรงตำแหน่ง %s แล้วหยุดรอรับค่าใด ๆ จากคีย์บอร์ด ซึ่งถ้าเรากด enter ก็จะกลับสู่โปรแกรม โปรแกรมตัวอย่างที่ 3.10 แสดงโปรแกรมการใช้ฟังก์ชัน printf( ) ควบคู่กับ รหัสรูปแบบ %d, %c, %s และ %f เพื่อแสดงข้อมูลที่จอภาพ
| | | | | |
/* printf3.c */ #include<stdio.h> /* บรรทัดที่ 1 */ #include<conio.h> /* บรรทัดที่ 2 */ void main(void) /* บรรทัดที่ 3 */ { /* บรรทัดที่ 4 */ int a=5, b=2; /* บรรทัดที่ 5 */ char c='D', d='F'; /* บรรทัดที่ 6 */ char e[20]="Thailand"; /* บรรทัดที่ 7 */ float f = 9.5 , g; /* บรรทัดที่ 8 */ clrscr( ); /* บรรทัดที่ 9 */ b+=a; d+=5; g = f + 2.5; /* บรรทัดที่ 10 */ printf("%5d \t%-5d\n",a, b); /* บรรทัดที่ 11 */ printf("%3c \t%-3c\n",c--, ++d); /* บรรทัดที่ 12 */ printf("%s\n",e); /* บรรทัดที่ 13 */ printf("%.3f \t%-.3f\n", f+2, g); /* บรรทัดที่ 14 */ getch( ); /* บรรทัดที่ 15 */ } /* บรรทัดที่ 16 */ | | | | |
ผลลัพธ์ที่ได้จากโปรแกรม คำอธิบายโปรแกรม จากโปรแกรมตัวอย่างที่ 3.10 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังต่อไปนี้
บรรทัดที่ 10 คำสั่ง b+ = a คือ b = b + a เพราะฉนั้น b = 2 + 5 = 7 คำสั่ง d+ = 5 คือ d = d + 5 เพราะฉนั้น d = ‘K’ คำสั่ง g = f + 2.5 คือ g = 9.5 + 2.5 = 12.0 บรรทัดที่ 11 ใช้ฟังก์ชัน printf( ) พิมพ์ข้อมูลชนิด int ของตัวแปร a และ b โดยใช้รัสควบคุม เป็น %d สำหรับตัวเลข 5 เป็นการบอกให้เว้นช่องว่าง 5 ช่องก่อนแล้วค่อยนำค่าตัวแปร a มาแสดง ส่วนเครื่องหมาย – หน้าตัวเลขเป็นการบอกให้พิมพ์ตัวเลขชิดซ้าย สำหรับรูปแบบการแสดงตัวแปร b บรรทัดที่ 12 ใช้ฟังก์ชัน printf( ) พิมพ์ข้อมูลชนิด char โดยใช้รหัสควบคุม %c ของตัวแปร c ก่อนแล้วค่อยลดค่าตัวแปรลง 1 และ ++d คือ เพิ่มค่าตัวแปร d ขึ้น 1 ค่าก่อนแล้วค่อยแสดงผลออกจอภาพ บรรทัดที่ 13 ใช้ฟังก์ชัน printf( ) พิมพ์ข้อมูลชนิด string โดยใช้รหัสควบคุม %s ของตัวแปร e ออกจอภาพ บรรทัดที่ 14 ใช้ฟังก์ชัน printf( ) พิมพ์ข้อมูลชนิด float โดยใช้รหัสควบคุม %f ของตัวแปร f + 2 คือ 11.500 (%3f คือ ทศนิยม 3 ตำแหน่ง) และแสดงค่าตัวแปร g ออกจอภาพ แล้วหยุดรอรับค่าใด ๆ จากคีย์บอร์ด ซึ่งถ้าเรากด enter ก็จะกลับสู่โปรแกรม 3.2.2 ฟังก์ชัน putchar( ) เป็นฟังก์ชันที่ใช้ในการแสดงผลลัพธ์ออกจอภาพทีละ 1 ตัวอักขระ โดยลักษณะของฟังก์ชันนี้เป็นฟังก์ชันที่ต้องการ argument 1 ค่าที่เป็นข้อมูลชนิด single character (char) รูปแบบการใช้งานฟังก์ชัน
putchar(char_argument); โดยที่
putchar( ) คือ ฟังก์ชันที่ใช้แสดงผลลัพธ์ทีละ 1 ตัวอักขระออกทางจอภาพ char_argument คือ ตัวแปรชนิด single character (char) เพื่อให้เกิดความเข้าใจการใช้งานฟังก์ชัน putchar( ) ได้ดียิ่งขึ้นควรศึกษาโปรแกรมตัวอย่างที่ 3.11 และ 3.12 ดังต่อไปนี้ โปรแกรมตัวอย่างที่ 3.11 แสดงโปรแกรมการใช้ฟังก์ชัน putchar( ) เพื่อแสดงข้อมูลออกจอภาพ
| | | | | |
/* putchar1.c */ #include<stdio.h> /* บรรทัดที่ 1 */ #include<conio.h> /* บรรทัดที่ 2 */ void main(void) /* บรรทัดที่ 3 */ { /* บรรทัดที่ 4 */ char p; /* บรรทัดที่ 5 */ clrscr( ); /* บรรทัดที่ 6 */ printf("Enter a single character :"); /* บรรทัดที่ 7 */ p=getche( ); /* บรรทัดที่ 8 */ printf("\nYour character is ...%c"); /* บรรทัดที่ 9 */ putchar(p); /* บรรทัดที่ 10 */ getch( ); /* บรรทัดที่ 11 */ } /* บรรทัดที่ 12 */ | | | | | ผลลัพธ์ที่ได้จากโปรแกรม
คำอธิบายโปรแกรม จากโปรแกรมตัวอย่างที่ 3.11 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังต่อไปนี้
บรรทัดที่ 8 ใช้ฟังก์ชัน getche( ) โดยนำค่าที่รับจากคีย์บอร์ดไปเก็บไว้ในตัวแปร p บรรทัดที่ 10 ใช้ฟังก์ชัน putchar( ) โดยนำค่าที่เก็บไว้ในตัวแปร p ออกแสดงผลที่จอภาพตรงตำแหน่ง %c ในฟังก์ชัน printf( ) ของบรรทัดที่ 9 แล้วหยุดรอรับค่าใด ๆ จากคีย์บอร์ด ซึ่งถ้าเรากด enter ก็จะกลับสู่โปรแกรม โปรแกรมตัวอย่างที่ 3.12 แสดงโปรแกรมการใช้ฟังก์ชัน putchar( ) เพื่อแสดงข้อมูลออกจอภาพ และแทรกด้วยการใช้ฟังก์ชัน printf( ) ก่อนนำข้อมูลออกแสดงผล
| | | | | |
/* putchar2.c */ #include<stdio.h> /* บรรทัดที่ 1 */ #include<conio.h> /* บรรทัดที่ 2 */ void main(void) /* บรรทัดที่ 3 */ { /* บรรทัดที่ 4 */ char p; /* บรรทัดที่ 5 */ clrscr( ); /* บรรทัดที่ 6 */ printf("Enter a single character : "); /* บรรทัดที่ 7 */ p=getche( ); /* บรรทัดที่ 8 */ printf("\nThank you !!!"); /* บรรทัดที่ 9 */ printf("\nYour character is ...%c"); /* บรรทัดที่ 10 */ putchar(p); /* บรรทัดที่ 11 */ getch( ); /* บรรทัดที่ 12 */ } /* บรรทัดที่ 13 */ | | | | |
ผลลัพธ์ที่ได้จากโปรแกรม คำอธิบายโปรแกรม โปรแกรมตัวอย่างที่ 3.12 จะทำงานคล้ายกับโปรแกรมตัวอย่างที่ 3.11 โดยการเก็บค่าที่รับจากคีย์บอร์ดไว้ในตัวแปร แล้วนำค่าที่เก็บไว้ในตัวแปรออกแสดงผลด้วยฟังก์ชัน putchar( ) ซึ่งก่อนจะแสดงผลมีการใช้ฟังก์ชัน printf( ) พิมพ์ข้อความ Thank you !!! ออกมาแทรกก่อน 1 บรรทัด แล้วหยุดรอรับค่าใด ๆ จากคีย์บอร์ด ซึ่งถ้าเรากด enter ก็จะกลับสู่โปรแกรม 3.2.3 ฟังก์ชัน puts( ) เป็นฟังก์ชันที่พิมพ์ข้อความออกแสดงทางจอภาพ โดยลักษณะของฟังก์ชันนี้เป็นฟังก์ชันที่ต้องการ argument 1 ค่าที่เป็นชนิดข้อความ (string constant) รูปแบบการใช้งานฟังก์ชัน
puts(string_argument); โดยที่
puts( ) คือ ฟังก์ชันที่ใช้พิมพ์ข้อความออกทางจอภาพ string_argument คือ ค่าคงที่ชนิดสตริง (string constant) ซึ่งค่าคงที่สตริงนี้จะถูกพิมพ์ออกแสดงทางจอภาพผ่านฟังก์ชัน puts( ) เพื่อให้เกิดความเข้าใจการใช้งานฟังก์ชัน puts( ) ได้ดียิ่งขึ้นควรศึกษาโปรแกรมตัวอย่างที่ 3.13 ดังต่อไปนี้ โปรแกรมตัวอย่างที่ 3.13 แสดงโปรแกรมการใช้ฟังก์ชัน puts( )
| | | | | |
/* puts1.c / #include<stdio.h> /* บรรทัดที่ 1 */ #include<conio.h> /* บรรทัดที่ 2 */ void main(void) /* บรรทัดที่ 3 */ { /* บรรทัดที่ 4 */ clrscr( ); /* บรรทัดที่ 5 */ printf("Computer Programming Language 1"); /* บรรทัดที่ 6 */ puts(" is your course." ); /* บรรทัดที่ 7 */ getch( ); /* บรรทัดที่ 8 */ } /* บรรทัดที่ 9 */ | | | | | ผลลัพธ์ที่ได้จากโปรแกรม คำอธิบายโปรแกรม จากโปรแกรมตัวอย่างที่ 3.13 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังต่อไปนี้
บรรทัดที่ 6 ใช้ฟังก์ชัน printf( ) พิมพ์ข้อความออกจอภาพ คือ Computer Programming Language 1 แสดงที่จอภาพ บรรทัดที่ 7 ใช้ฟังก์ชัน puts( ) พิมพ์ข้อความ is your course. ต่อท้ายของฟังก์ชัน printf( ) ในบรรทัดที่ 6 จะได้ Computer Programming Language 1 is your course. แล้วหยุดรอรับค่าใด ๆ จากคีย์บอร์ด ซึ่งถ้าเรากด enter ก็จะกลับสู่โปรแกรม
|
0 ความคิดเห็น:
แสดงความคิดเห็น