คำสั่งแสดงผลข้อมูล (output functions)
printf( )
เป็นฟังก์ชันที่ใช้ในการแสดงผลลัพธ์ออกทางจอภาพ โดยสามารถกำหนดรหัสรูปแบบข้อมูล (format code) และรหัสควบคุม (control code) ให้เหมาะสมกับข้อมูลและรูปแบบผลลัพธ์ที่ต้องการ
รูปแบบการใช้งานฟังก์ชัน(Syntax): printf(control string,
argument list);
โดยที่
control string คือ จะต้องเขียนอยู่ภายใต้เครื่องหมาย “………”เช่นเดียวกับฟังก์ชัน scanf( )
argument list คือ ค่าคงที่ หรือตัวแปร หรือนิพจน์ ในกรณีที่มีค่าคงที่ ตัวแปร หรือนิพจน์หลาย ๆ ค่าให้ใช้เครื่องหมาย , (comma) คั่นระหว่างค่าคงที่ ตัวแปร หรือนิพจน์แต่ละค่า
ตารางแสดงรหัสรูปแบบข้อมูลที่สามารถใช้ในฟังก์ชัน 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.
ตารางแสดงรหัสควบคุมข้อมูลที่สามารถใช้ในฟังก์ชัน printf( )
อักขระควบคุมการแสดงผล
|
ความหมาย
|
\n
|
ขึ้นบรรทัดใหม่
|
\t
|
เว้นช่องว่างเป็นระยะ 1 แท็บ (6 ตัวอักษร)
|
\r
|
กำหนดให้เคอร์เซอร์ไปอยู่ต้นบรรทัด
|
\f
|
เว้นช่องว่างเป็นระยะ 1 หน้าจอ
|
\b
|
ลบอักขระสุดท้ายออก 1 ตัว
|
ที่มา : http://krubpk.com/com_2/pan7/pan7.htm#d
ตัวอย่างการใช้งานprintf
1.การแสดงผลทางหน้าจอโดยแสดงคำว่าสวัสดีชาวโลก! หรือ Hello World!
#include <stdio.h>
main()
{
printf("Hello World!");
getch();
}
ผลที่ได้(output)
2.การแสดงผลทางหน้าจอโดยแสดงค่าของตัวแปรA ซึ่งเป็นตัวแปรชนิดint
#include <stdio.h>
main()
{
int A=1;
printf("Sum = %d",A);
getch();
}
ผลที่ได้(output)
3.การแสดงผลทางหน้าจอโดยแสดงค่าของตัวแปรA ซึ่งเป็นตัวแปรชนิดfloat การใส่1.2หน้า%f แสดงถึงการแสดงผลตัวเลข1ตำแหน่งหน้าจุดทศนิยม และตัวเลข2ตำหน่งหลังจุดทศนิยม
#include <stdio.h>
main()
{
float A=3.21;
printf("Sum = %1.2f",A);
getch();
}
ผลที่ได้(output)
4.การแสดงผลทางหน้าจอโดยแสดงการใช้\t คือการเว้นวรรคไปจำนวน6ตัวอักษร
และการใช้\n คือการเปลี่ยนบรรทัดครับ
#include <stdio.h>
main()
{
printf("A\tB\nC");
getch();
}
ผลที่ได้(output)
------------------------------------------------------
putchar( )
เป็นฟังก์ชันที่ใช้ในการแสดงผลลัพธ์ออกจอภาพทีละ 1 ตัวอักขระ โดยลักษณะของฟังก์ชันนี้เป็นฟังก์ชันที่ต้องการ argument 1 ค่าที่เป็นข้อมูลชนิด single character (char)
รูปแบบการใช้งานฟังก์ชัน(Syntax): putchar(char_argument);
โดยที่putchar( ) คือ ฟังก์ชันที่ใช้แสดงผลลัพธ์ทีละ 1 ตัวอักขระออกทางจอภาพ
char_argument คือ ตัวแปรชนิด single character (char)
ตัวอย่างการใช้งานprintf
1.การแสดงผลทางหน้าจอโดยแสดงอักขระ1ตัวอักษรครับ
#include <stdio.h>
main()
{
putchar('A');
getch();
}
ผลที่ได้(output)
2.การแสดงผลทางหน้าจอโดยแสดงค่าของตัวแปรA ซึ่งเป็นตัวแปรชนิดchar เก็บข้อมูลอักขระ1ตัวอักษร
#include <stdio.h>
main()
{
char str='B';
putchar(str);
getch();
}
ผลที่ได้(output)
puts( )
เป็นฟังก์ชันที่พิมพ์ข้อความออกแสดงทางจอภาพ โดยลักษณะของฟังก์ชันนี้เป็นฟังก์ชันที่ต้องการ argument
1 ค่าที่เป็นชนิดข้อความ (string constant)
รูปแบบการใช้งานฟังก์ชัน(Syntax): puts(string_argument);
โดยที่puts( ) คือ
ฟังก์ชันที่ใช้พิมพ์ข้อความออกทางจอภาพ
string_argument คือ ค่าคงที่ชนิดสตริง (string
constant) ซึ่งค่าคงที่สตริงนี้จะถูกพิมพ์ออกแสดงทางจอภาพผ่านฟังก์ชัน puts( )
ตัวอย่างการใช้งานprintf
1.การแสดงผลทางหน้าจอโดยแสดงข้อความ
#include <stdio.h>
main()
{
puts("Hello my friend!");
getch();
}
ผลที่ได้(output)
2.การแสดงผลทางหน้าจอโดยแสดงค่าของตัวแปรstr ซึ่งเป็นตัวแปรชนิดchar[] เก็บข้อมูลอักขระได้หลายตัวอักษร
#include <stdio.h>
main()
{
char str[]="Hi !";
puts(str);
getch();
}
ผลที่ได้(output)
------------------------------------------------------
ในเนื้อหาภาษา C มีฟังก์ชันที่ใช้ในการรับข้อมูลจากคีย์บอร์ด ดังนี้คือ scanf( ), getchar( ), getch( ), getche( ) และ gets( ) ซึ่งแต่ละฟังก์ชันมีรายละเอียดของการใช้งานดังนี้ครับคำสั่งรับข้อมูล (input functions)
scanf( )
เป็นฟังก์ชันที่ใช้ในการรับข้อมูล จากคีย์บอร์ดเข้าไปเก็บไว้ในตัวแปรที่กำหนดไว้โดยสามารถ
รับข้อมูลที่เป็นตัวเลขจำนวนเต็ม ตัวเลขทศนิยม ตัวอักขระตัวเดียว หรือข้อความก็ได้
รูปแบบการใช้งานฟังก์ชัน(Syntax): scanf(control
string, argument list);
โดยที่
control string คือ รหัสรูปแบบข้อมูล (format code) โดยจะต้องเขียนอยู่ภายใต้เครื่องหมาย “……..”
argument list คือ ชื่อตัวแปรที่ใช้เก็บข้อมูลโดยจะต้องใช้เครื่องหมาย & (ampersand) นำหน้าชื่อตัวแปร ยกเว้นตัวแปรชนิด string ไม่ต้องมีเครื่องหมาย & นำหน้าชื่อ ถ้ามีตัวแปรมากกว่า 1 ตัวแปร ให้ใช้เครื่องหมาย , (comma) คั่นระหว่างตัวแปรแต่ละตัว
ตารางที่ 3.1 แสดงรหัสแบบข้อมูล ที่สามารถใช้ในฟังก์ชัน scanf( )
รหัสรูปแบบ
(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
|
ที่มา : Gottfried, S. Byron, 1990 : 481.
ตัวอย่างการใช้งานscanf
1.การรับข้อมูลทางคีย์บอร์ดโดยรับข้อมูลแบบ1ค่า(int)
#include <stdio.h>
main()
{
int A;
scanf("%d",&A);
printf("A = %d",A);
getch();
}
main()
{
int A;
scanf("%d",&A);
printf("A = %d",A);
getch();
}
ผลที่ได้(output)
2.การรับข้อมูลทางคีย์บอร์ดโดยรับข้อมูลแบบ1ค่า(float)
#include <stdio.h>
main()
{
int B;
scanf("%f",&B);
printf("B = %d",B);
getch();
}
main()
{
int B;
scanf("%f",&B);
printf("B = %d",B);
getch();
}
ผลที่ได้(output)
3.การรับข้อมูลทางคีย์บอร์ดโดยรับข้อมูลแบบ2ค่า(int, float)
#include <stdio.h>
main()
{
int A;
float B;
scanf("%d %f",&A,&B);
printf("A = %d , B = %f",A,B);
getch();
}
main()
{
int A;
float B;
scanf("%d %f",&A,&B);
printf("A = %d , B = %f",A,B);
getch();
}
ผลที่ได้(output)
------------------------------------------------------
getchar( )
เป็นฟังก์ชันที่ใช้รับข้อมูลจากคีย์บอร์ดเพียง 1 ตัวอักขระ โดยการรับข้อมูลของฟังก์ชันนี้จะต้องกดแป้น enter ทุกครั้งที่ป้อนข้อมูลเสร็จ จึงทำให้เห็นข้อมูลที่ป้อนปรากฏบนจอภาพด้วย ถ้าต้องการนำข้อมูลที่ป้อนผ่านทางคีย์บอร์ดไปใช้งาน จะต้องกำหนดตัวแปรชนิด single character (char) ขึ้นมา 1 ตัว เพื่อเก็บค่าข้อมูลที่รับผ่านทางคีย์บอร์ด
รูปแบบการใช้งานฟังก์ชัน(Syntax): getchar( );
หรือ char_var = getchar( );
โดยที่
getchar( ) คือ ฟังก์ชันที่ใช้รับข้อมูลเพียง 1 ตัวอักขระจากคีย์บอร์ด โดยฟังก์ชันนี้จะไม่มี argument ซึ่งอาจจะใช้ getchar(void) แทนคำว่า getchar( ) ก็ได้ แต่นิยมใช้ getchar( ) มากกว่า
char_var คือ ตัวแปรชนิด char ซึ่งจะเก็บข้อมูล 1 ตัวอักขระที่ป้อนผ่านทางคีย์บอร์ด
ตัวอย่างการใช้งานgetchar
1.การรับข้อมูลทางคีย์บอร์ดโดยรับข้อมูลแบบตัวอักขระ1 ตัว
#include <stdio.h>
main()
{
char A;
A=getchar();
printf("input is : %c",A);
getch();
}
main()
{
char A;
A=getchar();
printf("input is : %c",A);
getch();
}
------------------------------------------------------
getch( )
เป็นฟังก์ชันที่ใช้รับข้อมูลเพียง 1 ตัวอักขระเหมือนกับฟังก์ชัน getchar( ) แตกต่างกันตรงที่เมื่อใช้ฟังก์ชันนี้รับข้อมูล ข้อมูลที่ป้อนเข้าไปจะไม่ปรากฏให้เห็นบนจอภาพและไม่ต้องกดแป้น enter ตาม
รูปแบบการใช้งานฟังก์ชัน(Syntax): getch( );
หรือ char_var = getch( );
โดยที่
getch( ) คือ ฟังก์ชันที่ใช้รับข้อมูลเพียง 1 ตัวอักขระจากคีย์บอร์ด โดยฟังก์ชันนี้จะไม่มี argument ดังนั้นอาจจะใช้ getch(void) แทนคำว่า getch( ) ก็ได้ แต่นิยมใช้ getch( ) มากกว่า
char_var คือ ตัวแปรชนิด char ซึ่งจะเก็บข้อมูล 1 ตัวอักขระที่ป้อนผ่านทางคีย์บอร์ด
ตัวอย่างการใช้งานgetch
ตัวอย่างการใช้งานgetch
1.การรับข้อมูลทางคีย์บอร์ดโดยรับข้อมูลแบบตัวอักขระ1 ตัว โดยไม่ต้องกดEnter
#include <stdio.h>
main()
{
char A;
A=getch();
printf("input is : %c",A);
getch();
}
main()
{
char A;
A=getch();
printf("input is : %c",A);
getch();
}
getche( )
เป็นฟังก์ชันที่ใช้รับข้อมูลจากคีย์บอร์ดเพียง 1 ตัวอักขระ เหมือนฟังก์ชัน getch( ) แตกต่างกันตรงที่ข้อมูลที่ป้อนเข้าไป จะปรากฏให้เห็นบนจอภาพด้วย นอกนั้นมีการทำงาน และลักษณะการใช้งานเหมือนฟังก์ชัน getch( ) ทุกประการ
รูปแบบการใช้งานฟังก์ชัน(Syntax): getche( );
หรือ char_var = getche( );
โดยที่
getche( ) คือ ฟังก์ชันที่ใช้รับข้อมูลเพียง 1 ตัวอักขระจากคีย์บอร์ด โดยฟังก์ชันนี้จะไม่มี argument ดังนั้นอาจจะใช้ getche(void) แทนคำว่า getche( ) ก็ได้ แต่นิยมใช้ getche( ) มากกว่า
char_var คือ ตัวแปรชนิด char ซึ่งจะเก็บข้อมูล 1 ตัวอักขระที่ป้อนผ่านทางคีย์บอร์ด
ตัวอย่างการใช้งานgetche
ตัวอย่างการใช้งานgetche
1.การรับข้อมูลทางคีย์บอร์ดโดยรับข้อมูลแบบตัวอักขระ1 ตัว โดยไม่ต้องกดEnter
gets( )
เป็นฟังก์ชันที่ใช้รับข้อมูลชนิดข้อความ (string) จากคีย์บอร์ด จากนั้นนำข้อมูลที่รับเข้าไปเก็บไว้ในตัวแปรสตริง (string variables) ที่กำหนดไว้
รูปแบบการใช้งานฟังก์ชัน(Syntax): gets(string_var);
โดย
string_var คือ ตัวแปรสตริง ซึ่งจะใช้เก็บข้อมูลชนิดข้อความ (string constant)
gets( ) คือ ฟังก์ชันที่ใช้รับข้อความจากคีย์บอร์ด แล้วไปเก็บไว้ในตัวแปรสตริง
ตัวอย่างการใช้งานget
1.การรับข้อมูลทางคีย์บอร์ดโดยรับข้อมูลแบบตัวอักขระ1 ตัว โดยไม่ต้องกดEnter
สรุปข้อแนะนำการใช้ฟังก์ชันรับข้อมูล (input functions)
- เมื่อต้องการรับค่าข้อมูล string ควรใช้ฟังก์ชัน gets( )
- เมื่อต้องการรับตัวเลขหรือตัวอักษรเพียง 1 ตัว ที่ไม่ต้องการเห็นบนจอภาพ และไม่ต้องกดแป้น enter ควรใช้ฟังก์ชัน getch( ) แต่ถ้าต้องการเห็นบนจอภาพด้วยควรใช้ฟังก์ชัน getche( )
- เมื่อต้องการรับข้อมูลตัวเลขที่มากกว่า 1 ตัว เช่น ตัวเลขจำนวนเต็มหรือตัวเลขทศนิยม ควรใช้ฟังก์ชัน scanf( )
- กรณีที่ใช้ฟังก์ชัน scanf( ) รับข้อมูลติดต่อกันมากกว่า 2 ครั้ง อาจเกิดความผิดพลาดในการรับข้อมูล ดังนั้นจึงควรใช้คำสั่ง ch = getchar( ); คั่นก่อนที่จะรับข้อมูลครั้งที่ 3 โดยจะต้องมีคำสั่งประกาศตัวแปร char ch; ไว้ด้วย
เนื้อหาบางส่วนอ้างอิงจาก
------------------------------------------------------
ไม่มีความคิดเห็น:
แสดงความคิดเห็น