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