getchar()คือ

การป้อนข้อมูล

        การป้อนข้อมูลทางแป้นพิมพ์ เป็นวิธีหนึ่งในการกำหนดค่าให้กับตัวแปร ในเทอร์โบซีมีฟังก์ชันสำหรับป้อนข้อมุลคือ scanf(), getchar(), getche(), getch และ gets()

Top

1. ฟังก์ชัน scanf()

        ฟังก์ชัน scanf() มีรูปแบบดังนี้

                scanf(“format code”, &var);

        เมื่อโปรแกรมทำงานถึงฟังก์ชันนี้จะหยุดเพื่อให้ป้อนข้อมูล โดยข้อมูลที่ป้อนจะแสดงบนจอภาพ เมื่อป้อนข้อมูลเสร็จกด Enter ข้อมูลทั้งหมดจะเก็บในตัวแปร var ชนิดของข้อมูลที่กำหนดให้กับตัวแปร var จะถูกกำหนดโดยตัวกำหนดชนิดข้อมูลซึ่งระบุในส่วนของ format code ตัวกำหนดชนิดข้อมูลของฟังก์ชัน scanf() จะเหมือนกับของฟังก์ชัน printf() ซึ่งได้กล่าวมาแล้ว ฟังก์ชัน scanf() จะทำให้เคอร์เซอร์ขึ้นบรรทัดใหม่หลังจากกด Enter

        โมดิฟายเออร์ซึ่งได้กล่าวมาแล้ว สามารถนำมาใช้กับฟังก์ชัน scanf() ได้ในลักษณะเดียวกัน

ตัวอย่าง โปรแกรมที่ 1

#include”stdio.h”

main()

{

int num;

float x;

double y;

printf(“ Enter integer number “);

scanf(“%d”,&num);

printf(“ Enter floating point number “);

scanf(“%f”,&x);

scanf(“%f”,&x);

printf(“ Enter double precision floating point number “);

scanf(“%lf”,&y);

printf(“\n”);

printf(“ Integer number %d\n”,num);

printf(“ Floating point number %10.4f\n,x);

printf(“ Double precision floating point number %10.4f\n”,y);

}


ผลลัพธ์

Enter integer number 12

Enter floating point number 30.8

Enter double precision floating point number 35558799.789

 

Integer number 12

Floating point number 30.8000

Double precision floating point number 35558799.7890

 

        โปรแกรมที่ 1 เป็นการป้อนข้อมูลเลขจำนวนเต็ม เลขจำนวนจริง และเลขจำนวนจริงละเอียด 2 เท่าให้กับตัวแปร num, x และ y ตามลำดับ

ตัวอย่าง โปรแกรมที่ 2

#include”stdio.h”

main()

{

char str[60];

printf(“ Enter letters “);

scanf(“%[i-nI-N]”,str);

printf(“%s\n,str);

}


ผลลัพธ์

Enter letters IJKLMNikjpq

IJKLMNikj

 

        โปรแกรมที่ 2 ใช้ตัวกำหนดชนิดข้อมูลเป็น %[i-nI-N] หมายความว่าเฉพาะตัวอักษร i-n และ I-N เท่านั้นที่จะถูกนำมาเก็บในอาร์เรย์สตริงก์ str จะเห็นว่าเมื่อพิมพ์ “IJKLMNikjpq” แล้วกด Enter เฉพาะ “IJKLMNikj” เท่านั้นที่จะนำมาเก็บในอาร์เรย์สตริงก์ str

ตัวอย่าง โปรแกรมที่ 3

#include”stdio.h”

main()

{

char str[60];

printf(“ Enter only letters “);

scanf(“%[^01234567890]”,str);

printf(“%s\n”,str);

}


ผลลัพธ์

Enter only letters abcdef*&%12345

abcdef*&%

 

ตัวอย่าง โปรแกรมที่ 4

#include”stdio.h”

main()

{

int a,b,c;

printf(“Enter three integer numbers “);

scanf(“%d%d%d”,&a,&b,&c);

printf(“a = %d b= %d c= %d\n”,a,b,c);

}


ผลลัพธ์

Enter three integer numbers 123 567 560

a = 123 b = 567 c = 560

 

ตัวอย่าง โปรแกรมที่ 5

#include”stdio.h”

main()

{

int a,b,c;

printf(“Enter three integer numbers “);

scanf(“%3d%d%d”,&a,&b,&c);

printf(“a = %d b= %d c = %d\n”,a,b,c);

}


ผลลัพธ์

Enter three integer numbers 1234 567 89

a = 123 b= 4 c = 567

 

        ในโปรแกรมที่ 5 ตัวแปร a ถูกกำหนดให้รับตัวเลขซึ่งมีความยาว 3 หลัก เมื่อป้อนตัวเลขเกินจำนวนหลักที่กำหนดไว้ ส่วนที่เกินจะถูกนำไปเก็บในตัวแปรที่อยู่ถัดไป ในที่นี้คือตัวแปร b ซึ่งมีค่าเป็น 4 สำหรับค่าที่จะกำหนดให้ตัวแปร b จะถูกนำไปกำหนดให้กับตัวแปร c

ตัวอย่าง โปรแกรมที่ 6

#include”stdio.h”

main()

{

char ch;

int I,j;

printf(“Enter passed word (###C### )”);

scanf(“%d%c%d”,&i,&ch,&j);

printf(“i = %d ch = %c j = %d\n”,i,ch,j);

}


ผลลัพธ์

Enter passed word (###C### )123 456

i = 123 ch = j = 456

 

        โปรแกรมที่ 6 มีตัวกำหนดชนิดข้อมูล %c และไม่มีช่องว่างระหว่างตัวกำหนดชนิดข้อมูล ขณะที่ป้อนข้อมูลจะไม่เว้นช่องว่างระหว่างชุดข้อมูล ถ้ามีการเว้นช่องว่าง scanf() จะถือช่องว่างเป็นข้อมูลของตัวแปร

        โปรแกรมที่ 7 มีช่องว่างระหว่างตัวกำหนดชนิดข้อมูล ในกรณีนี้ scanf() จะข้ามช่องว่างไปจนกระทั่งพบข้อมูลที่ไม่ใช่ช่องว่างจึงจะเริ่มอ่านข้อมูล ดังนั้นจึงสามารถป้อนข้อมูลแต่ละชุดติดกันหรือเว้นช่องว่างระหว่างชุดข้อมูล

ตัวอย่าง โปรแกรมที่ 7

#include”stdio.h”

main()

{

char ch;

int I,j;

printf(“Enter passed word (###C### )”);

scanf(“%d %c%d”,&i,&ch,&j);

printf(“i = %d ch = %c j = %d\n”,i,ch,j);

}


ผลลัพธ์

Enter passed word (###C### )123E456

i = 123 ch = E j = 456

 

Enter passed word (###C### )123 E 456

i = 123 ch = E j = 456

 

ตัวอย่าง โปรแกรมที่ 8

#include”stdio.h”

main()

{

char st[20];

printf(“Enter message “);

scanf(“%s”,st);

printf(“%s\n”,st);

}


ผลลัพธ์

Enter message Happy New Year

Happy

 

        โปรแกรมที่ 8 เป็นการป้อนข้อมูลชนิดสตริงก์ทางแป้นพิมพ์ จะเห็นว่าเราป้อนข้อความ “Happy New Year” แต่เฉพาะข้อความ Happy เท่านั้นที่ถูกนำมาเก็บในอาร์เรย์สตริงก์ st ทั้งนี้เพราะการใช้ฟังก์ชัน scanf() กับข้อมูลสตริงก์จะถือช่องว่างเป็นจุดสิ้นสุดของสตริงก์หรือข้อความ

        สำหรับการป้อนข้อมูลสตริงก์ทางแป้นพิมพ์จะไม่นิยมใช้ฟังก์ชัน scanf() แต่จะใช้ฟังก์ชัน gets() แทน ซึ่งจะกล่าวในตอนหลัง

Top

2. ฟังก์ชัน getchar()

        ฟังก์ชัน getchar() ใช้สำหรับป้อนตัวอักษรผ่านทางแป้นพิมพ์โดยจะรับตัวอักษรเพียง 1 ตัวเท่านั้น และแสดงตัวอักษรบนจอภาพ

                ch = getchar();

        เมื่อโปรแกรมทำงานถึงคำสั่งนี้จะหยุดเพื่อให้ป้อนตัวอักษร 1 ตัว หลังจากนั้นกด Enter ตัวอักษรที่ป้อนจะถูกเก็บไว้ในตัวแปร ch ซึ่งเป็นชนิดตัวอักษรและเคอร์เซอร์จะขึ้นบรรทัดใหม่ ฟังก์ชัน getchar() กำหนดในไฟล์ stdio.h เช่นเดียวกับฟังก์ชัน scanf()

ตัวอย่าง โปรแกรมที่ 9

#include”stdio.h”

main()

{

char ch;

printf(“ Type one character “);

ch = getchar();

printf(“ The character you typed is %c\n”,ch);

}


ผลลัพธ์

Type one character s

The character you typed is s

 

        โปรแกรมที่ 9 จะให้ป้อนตัวอักษร 1 ตัวทางแป้นพิมพ์

        โปรแกรมที่ 10 ให้ผลลัพธ์เหมือนโปรแกรมที่ 9 แต่ใช้ฟังก์ชัน putchar() แทน printf() ฟังก์ชัน putchar() จะพิมพ์ตัวอักษร 1 ตัวและเคอร์เซอร์จะไม่ขึ้นบรรทัดใหม่

ตัวอย่าง โปรแกรมที่ 10

#include”stdio.h”

main()

{

char ch;

printf(“ Type one character “);

ch = getchar();

printf(“ The character you typed is “);

putchar(ch);

}


ผลลัพธ์

Type one character s

The character you typed is s

 

Top

3. ฟังก์ชัน getche() และ getch()

        ฟังก์ชัน getche() และ getch() มีรูปแบบดังนี้

                ch = getche();

                ch = getch();

        ฟังก์ชัน getche() จะรับตัวอักษร 1 ตัวที่ป้อนทางแป้นพิมพ์ และจะแสดงตัวอักษรบนจอภาพ เมื่อป้อนข้อมูลเสร็จไม่ต้องกด Enter และเคอร์เซอร์จะไม่ขึ้นบรรทัดใหม่

        ฟังก์ชัน getch() จะคล้ายกับฟังก์ชัน getche() ต่างกันตรงที่จะไม่แสดงตัวอักษรขณะป้อนข้อมูล

        ฟังก์ชัน getche() และ getch() กำหนดในไฟล์ conio.h ดังนั้นจะต้องระบไฟล์ดังกล่าวในโปรแกรม

ตัวอย่าง โปรแกรมที่ 11

#include”stdio.h”

#include”conio.h”

main()

{

char ch;

printf(“ Type one character “);

ch = getche();

printf(“\n”);

printf(“ The character you typed is “);

putchar(ch);

}


ผลลัพธ์

Type one character s

The character you typed is s

 

ตัวอย่าง โปรแกรมที่ 12

#include”stdio.h”

#include”conio.h”

main()

{

char ch;

printf(“ Type one character “);

ch = gerch();

printf(“\n”);

printf(“ The character you typed is “);

putchar(ch);

}


ผลลัพธ์

Type one character

The character you typed is s

 

        โปรแกรมที่ 11 และ 12 เป็นการป้อนข้อมูลชนิดตัวอักษรทางแป้นพิมพ์โดยใช้ฟังก์ชัน getche() และ getch() ตามลำดับ

Top

4. ฟังก์ชัน gets

        ฟังก์ชัน gets() ใช้สำหรับข้อมูลชนิดสตริงก์หรือข้อความซึ่งป้อนทางแป้นพิมพ์โดยมีรูปแบบดังนี้

                gets(str);

        เมื่อโปรแกรมทำงานถึงคำสั่งนี้จะหยุดเพื่อให้ป้อนข้อความ เมื่อป้อนเสร็จแล้วกด Enter ข้อความทั้งหมดจะถูกเก็บไว้ในอาร์เรย์สตริงก์ str โดย carriage return ( จากการกด Enter) จะแทนด้วยสตริงก์ศูนย์ดังได้กล่าว ฟังก์ชัน gets() จะทำให้เคอร์เซอร์ขึ้นบรรทัดใหม่หลังจากกด Enter และกำหนดในไฟล์ stdio.h

ตัวอย่าง โปรแกรมที่ 13

#include”stdio.h”

main()

{

char message[50];

printf(“ Enter a message(less than 49 characters)\n”);

gets(message);

printf(“ The message you entered is %s\n”,message);

}


ผลลัพธ์

Enter a message(less than 49 characters)

Kiss and say good-bye

The message you entered is Kiss and say good-bye

 

        

Top

Comments