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

1
2769

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



รับข้อมูลจากคีย์บอร์ดด้วย 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 หาพื้นที่สี่เหลี่ยมด้านขนาน