Translate

วันอาทิตย์ที่ 18 พฤษภาคม พ.ศ. 2557

บทที่1 การรับและแสดงผลข้อมูล C++


คำสั่งแสดงผลข้อมูล  (output  functions)


            ในภาษา  C  มีฟังก์ชันที่ใช้ในการแสดงผลออกทางจอภาพ ดังนี้คือ printf( ), putchar( ) และ puts( )  ซึ่งแต่ละฟังก์ชันมีรายละเอียดของการใช้งานดังนี้ครับ
            


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)



------------------------------------------------------

คำสั่งรับข้อมูล  (input functions)

           ในเนื้อหาภาษา C มีฟังก์ชันที่ใช้ในการรับข้อมูลจากคีย์บอร์ด ดังนี้คือ scanf( ), getchar( ),   getch( ),  getche( )  และ  gets( )  ซึ่งแต่ละฟังก์ชันมีรายละเอียดของการใช้งานดังนี้ครับ

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();
}
ผลที่ได้(output)


2.การรับข้อมูลทางคีย์บอร์ดโดยรับข้อมูลแบบ1ค่า(float)
#include <stdio.h>
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();
}
ผลที่ได้(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();
}

ผลที่ได้(output)

------------------------------------------------------ 

getch( )

           เป็นฟังก์ชันที่ใช้รับข้อมูลเพียง  1 ตัวอักขระเหมือนกับฟังก์ชัน getchar( )  แตกต่างกันตรงที่เมื่อใช้ฟังก์ชันนี้รับข้อมูล  ข้อมูลที่ป้อนเข้าไปจะไม่ปรากฏให้เห็นบนจอภาพและไม่ต้องกดแป้น  enter  ตาม 
รูปแบบการใช้งานฟังก์ชัน(Syntax): getch( );
หรือ char_var = getch( );
โดยที่
getch( )  คือ ฟังก์ชันที่ใช้รับข้อมูลเพียง  1  ตัวอักขระจากคีย์บอร์ด  โดยฟังก์ชันนี้จะไม่มี  argument  ดังนั้นอาจจะใช้  getch(void)  แทนคำว่า  getch( )  ก็ได้  แต่นิยมใช้  getch( )  มากกว่า
char_var  คือ  ตัวแปรชนิด  char  ซึ่งจะเก็บข้อมูล  1  ตัวอักขระที่ป้อนผ่านทางคีย์บอร์ด

ตัวอย่างการใช้งานgetch
1.การรับข้อมูลทางคีย์บอร์ดโดยรับข้อมูลแบบตัวอักขระ1 ตัว โดยไม่ต้องกดEnter
#include <stdio.h>
main()
{
char A;
A=getch();
        printf("input is : %c",A);
        getch();
}


ผลที่ได้(output)

------------------------------------------------------

 getche( )

           เป็นฟังก์ชันที่ใช้รับข้อมูลจากคีย์บอร์ดเพียง  1 ตัวอักขระ เหมือนฟังก์ชัน getch( )  แตกต่างกันตรงที่ข้อมูลที่ป้อนเข้าไป จะปรากฏให้เห็นบนจอภาพด้วย  นอกนั้นมีการทำงาน และลักษณะการใช้งานเหมือนฟังก์ชัน  getch( )  ทุกประการ
รูปแบบการใช้งานฟังก์ชัน(Syntax): getche( );
หรือ char_var = getche( );
โดยที่
getche( )  คือ ฟังก์ชันที่ใช้รับข้อมูลเพียง  1  ตัวอักขระจากคีย์บอร์ด  โดยฟังก์ชันนี้จะไม่มี  argument  ดังนั้นอาจจะใช้  getche(void)  แทนคำว่า  getche( )  ก็ได้  แต่นิยมใช้  getche( )  มากกว่า
char_var  คือ  ตัวแปรชนิด  char  ซึ่งจะเก็บข้อมูล  1  ตัวอักขระที่ป้อนผ่านทางคีย์บอร์ด

ตัวอย่างการใช้งานgetche
1.การรับข้อมูลทางคีย์บอร์ดโดยรับข้อมูลแบบตัวอักขระ1 ตัว โดยไม่ต้องกดEnter
#include <stdio.h>
main()
{
char B;
B=getche();
        printf("\ninput is : %c",B);
        getch();
}
ผลที่ได้(output)

------------------------------------------------------

gets( )

            เป็นฟังก์ชันที่ใช้รับข้อมูลชนิดข้อความ  (string)  จากคีย์บอร์ด  จากนั้นนำข้อมูลที่รับเข้าไปเก็บไว้ในตัวแปรสตริง  (string  variables)  ที่กำหนดไว้
รูปแบบการใช้งานฟังก์ชัน(Syntax): gets(string_var);
โดย
string_var  คือ  ตัวแปรสตริง  ซึ่งจะใช้เก็บข้อมูลชนิดข้อความ  (string  constant)
gets( )       คือ  ฟังก์ชันที่ใช้รับข้อความจากคีย์บอร์ด  แล้วไปเก็บไว้ในตัวแปรสตริง
ตัวอย่างการใช้งานget
1.การรับข้อมูลทางคีย์บอร์ดโดยรับข้อมูลแบบตัวอักขระ1 ตัว โดยไม่ต้องกดEnter
#include <stdio.h>
main()
{
char C[50];
gets(C);
        printf("\ninput is : %s",C);
        getch();
}
ผลที่ได้(output)

------------------------------------------------------ 

สรุปข้อแนะนำการใช้ฟังก์ชันรับข้อมูล  (input  functions)
  • เมื่อต้องการรับค่าข้อมูล  string  ควรใช้ฟังก์ชัน  gets( ) 
  • เมื่อต้องการรับตัวเลขหรือตัวอักษรเพียง  1  ตัว  ที่ไม่ต้องการเห็นบนจอภาพ  และไม่ต้องกดแป้น  enter  ควรใช้ฟังก์ชัน  getch( ) แต่ถ้าต้องการเห็นบนจอภาพด้วยควรใช้ฟังก์ชัน  getche( )
  • เมื่อต้องการรับข้อมูลตัวเลขที่มากกว่า  1  ตัว  เช่น  ตัวเลขจำนวนเต็มหรือตัวเลขทศนิยม  ควรใช้ฟังก์ชัน  scanf( )
  • กรณีที่ใช้ฟังก์ชัน  scanf( )  รับข้อมูลติดต่อกันมากกว่า  2  ครั้ง  อาจเกิดความผิดพลาดในการรับข้อมูล  ดังนั้นจึงควรใช้คำสั่ง  ch = getchar( );  คั่นก่อนที่จะรับข้อมูลครั้งที่  3  โดยจะต้องมีคำสั่งประกาศตัวแปร  char  ch;  ไว้ด้วย




------------------------------------------------------
เนื้อหาบางส่วนอ้างอิงจาก






ไม่มีความคิดเห็น:

แสดงความคิดเห็น