คำสั่งรับข้อมูล

ในการเขียนโปรแกรมบางครั้งต้องมีการรับข้อมูลจากผู้ใช้เข้ามาในโปรแกรม เช่น เลือกรายการตัวเลือก เพื่อนำข้อมูลนั้นๆ มาประมวลผลในโปรแกรม ซึ่งส่วนใหญ่ผู้เขียนโปรแกรมมักจะกำหนดให้ผู้ใช้กรอกข้อมูลเข้ามาทางคีย์บอร์ด

 

รับข้อมูลจากคีย์บอร์ดด้วย scanf( )

การรับข้อมูลจากคีย์บอร์ดสามารถทำได้โดยการเรียกใช้คำสั่ง scanf ( ) ซึ่งเป็นฟังก์ชั่นมาตรฐานใช้สำหรับรับข้อมูลจากคีย์บอร์ด รูปแบบการเรียกใช้งานมีดังนี้

 

scanf (“format” , &variable);

format: เป็นการใช้รหัสรูปแบบที่กำหนดชนิดของข้อมูลที่จะรับเข้ามา โดยรหัสรูปแบบของคำสั่ง scanf() จะใช้ชุดเดียวกับรหัสรูปแบบของคำสั่ง printf()

variable: ตัวแปรที่ใช้สำหรับเก็บค่าข้อมูลที่รับเข้ามา โดยจะต้องเขียนนำหน้าชื่อตัวแปรด้วยเครื่องหมาย & ยกเว้นตัวแปรชนิดข้อความเท่านั้น ที่สามารถใส่ชื่อตัวแปรได้โดยไม่ต้องนำหน้าด้วย &

 

ตัวอย่าง1

#include <stdio.h>

int age;

main()

{

printf(“How old are you?”);

scanf(“%d”,&age);

printf(“You are %d years old.\n”,age);

}

 

 

ตัวอย่าง2

#include <stdio.h>

int year;

float salary;

main()

{

printf(“Insert year experience: “);

scanf(“%d”,&year);

printf(“Insert your salary: “);

scanf(“%f”,&salary);

printf(“You worked for %d years.\n”,year);

printf(“Your salary is %f now.\n”,salary);

}

 

 

ตัวอย่าง3

#include <stdio.h>

int date,month,year;

main()

{

printf(“Insert year birthday (dd/mm/yyyy): “);

scanf(“%d/%d/%d”,&year,&month,&year);

printf(“Your birthday is: %d/%d/%d\n”,date,month,year);

}

 

 

 

รับข้อมูลทีละอักษรด้วย getchar( )

คำสั่ง getchar( ) จะใช้สำหรับรับข้อมูลชนิดอักขระเข้ามาจากคีย์บอร์ด โดยรับข้อมูลได้ครั้งละหนึ่งอักขระเท่านั้น รูปแบบการเรียกใช้คำสั่ง getchar( ) ดังนี้

 

variable = getchar( );

variable: ชื่อของตัวแปรชนิดอักขระ

การใช้คำสั่ง getchar( ) เมื่อผู้ใช้กรอกอักขระลงไปแล้วจะต้องกดปุ่ม Enter โปรแกรมจึงจะกลับไปทำงานต่อ โดยอักขระที่ผู้ใช้กรอกจะปรกฏขึ้นมาให้เห็นบนหน้าจอด้วย

 

ตัวอย่าง

#include <stdio.h>

char test;

main()

{

printf(“Enter your favorite letter: “);

test = getchar();

printf(“Your insert is: %c\n”,test);

}

 

 

รับข้อมูลทีละอักษรด้วย getch( )

คำสั่ง getch( ) จะใช้สำหรับรับข้อมูลชนิดอักขระเข้ามาจากคีย์บอร์ด โดยรับข้อมูลได้ครั้งละหนึ่งอักขระเท่านั้น รูปแบบการเรียกใช้คำสั่ง getch( ) ดังนี้

 

variable = getch( );

variable: ชื่อของตัวแปรชนิดอักขระ

การใช้คำสั่ง getch( ) เมื่อผู้ใช้กรอกอักขระลงไปแล้วจะไม่ต้องกดปุ่ม Enter เหมือนคำสั่ง getchar( )

 

ตัวอย่าง

#include <stdio.h>

#include <conio.h>

char text;

main()

{

printf(“Enter your favorite letter: “);

text = getch();

printf(“Your insert is: %c”,text);

}

 

 

รับข้อมูลทีละอักษรด้วย gets( )

การรับข้อมูลชนิดข้อความมาจากคีย์บอร์ด เราสามารถเรียกใช้คำสั่ง gets( ) ซึ่งใช้สำหรับรับข้อความโดยเฉพาะ มีรูปแบบดังนี้

 

gets(str);

str: ชื่อของตัวแปรชนิดอักขระ

การใช้คำสั่ง getch( ) เมื่อผู้ใช้กรอกอักขระลงไปแล้วจะไม่ต้องกดปุ่ม Enter เหมือนคำสั่ง getchar( )

 

ตัวอย่าง

#include <stdio.h>

char text[10];

main()

{

printf(“Enter your message: “);

gets (text);

printf(“Your message is: %s”,text);

}

 

 

 

แบบฝึกหัด

ให้นักเรียนแบ่งกลุ่ม แล้วจับฉลากหาพื้นที่ตามด้านล่าง

กลุ่มที่ 1 หาพื้นที่สี่เหลี่ยมจัตตุรัส

กลุ่มที่ 2 หาพื้นที่สี่เหลี่ยมผืนผ้า

กลุ่มที่ 3 หาพื้นที่สี่เหลี่ยมคางหมู

กลุ่มที่ 4 หาพื้นที่สี่เหลี่ยมขนมเปียกปูน

กลุ่มที่ 5 หาพื้นที่สี่เหลี่ยมใดใด

กลุ่มที่ 6 หาพื้นที่สามเหลี่ยม

กลุ่มที่ 7 หาปริมาตรทรงกระบอก

กลุ่มที่ 8 หาปริมาตรทรงพีรมิด

กลุ่มที่ 9 หาพื้นที่วงกลม

กลุ่มที่ 10 หาพื้นที่สี่เหลี่ยมด้านขนาน