| 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 ก็จะกลับสู่โปรแกรม |
ไม่มีความคิดเห็น:
แสดงความคิดเห็น