อินพุต เอาต์พุต พื้นฐาน

Input-output กับประเภทข้อมูล

ในบทเรียนนี้ คุณจะได้เรียนเกี่ยวกับการรับค่าและการแสดงผลโดยการใช้ฟังก์ชันของภาษา C โดยปกติในการเขียนโปรแกรม เรามักจะมีการรับค่าและการแสดงผลจากผู้ใช้ ในการรับค่าโดยทั่วไปแล้วจะเป็นการรับค่าจากคีย์บอร์ดและการแสดงผลจะเป็นทางหน้าจอคอมพิวเตอร์

ในภาษา C มีฟังก์ชันให้เราสามารถรับค่าและแสดงผลได้ โดยจะมีรูปแบบในการรับค่าและแสดงผลของข้อมูลขึ้นกับประเภทของข้อมูล นี่เป็นข้อมูลส่วนมากที่เราจะพบในการทำงาน โดยจะเป็น specifier ที่จะใช้ในการรับข้อมูลแต่ละแบบ

specifierDescriptionUsage
dintegerใช้กับตัวเลขจำนวนเต็ม
ffloating, doubleใช้กับตัวเลขจำนวนจริง
cCharacterใช้กับตัวอักษรหนึ่งตัวอักษร
sString of charactersใช้กับสตริงหรือตัวอักษรหลายตัว
pPointerใช้กับค่าที่อยู่ของหน่วยความจำ
%%เครื่องหมายที่จะตามโดย specifier ตัวอื่นๆ

ฟังก์ชัน printf

ในการแสดงผลในภาษา C ฟังก์ชันที่ใช้คือฟังก์ชัน printf ซึ่งเป็นฟังก์ชันที่สามารถแสดงข้อมูลประเภทต่างออกทางหน้าจอภาพได้ โดยมันมีรูปแบบการใช้งานดังนี้

printf ("string pattern", value1, value2, ...);

ในการใช้ฟังก์ชัน อาร์กิวเมนต์ตัวแรกคือรูปแบบการแสดงผล และอาร์กิวเมนต์ตัวต่อไปเป็นข้อมูลที่ตรงกับ specifier ที่เรากำหนดไว้ตามลำดับ มาดูตัวอย่างการใช้งานจริง

printf ("Hello, my name is Mateo\n");

int age = 20;
printf ("I\'m %d year old\n", age);

printf ("I have %f USD and %d cents\n", 10.5, 4);

จากตัวอย่างเป็นการใช้ฟังก์ชัน printf เพื่อการแสดงผลแบบต่างๆ อันแรกเป็นการแสดงผลข้อความโดยที่ไม่มี specifier อันที่สองเราต้องการแสดงอายุที่เป็น integer เราจึงใช้ %d เพื่อแทนการแสดงผลของมัน อันสุดท้ายแสดงให้เห็นถึงการแสดงหลาย ค่าโดยเราต้องกำหนด specifier ให้ตรงกับค่าของเรา

และนี่เป็นตัวอย่างผลลัพธ์ของโปรแกรม

Hello, my name is Mateo
I'm 20 years old
I have 4.5 USD and 4 cents

ฟังก์ชัน scanf

ในการรับค่านั้นเราจะใช้ฟังก์ชัน scanf ในการรับค่า โดยการรับค่าเรามักจะหมายถึงการรับค่าจากคีย์บอร์ด โดยรูปแบบการใช้งานของฟังก์ชันเป็นดังนี้

scanf ("%specifier1 %specifier2 ...", variable1, variable2, ...);

ฟังก์ชัน scanf นั้นมีรูปแบบที่คล้ายกันกับฟังก์ชัน printf โดยอาร์กิวเมนต์ในฟังก์ตัวแรกเป็นสตริงของ specifier input ที่เราต้องการรับ และเป็นลำดับของตัวแปรที่ตรงกับ specifier ที่เราได้กำหนดไว้ในอาร์กิวเมนต์ตัวแรก และใส่ตัวแปรให้ตรงกับลำดับของ specifier ที่กำหนด

ต่อไปมาดูตัวอย่าง ของการรับค่าโดยการใช้ฟังก์ชัน scanf

int a;
float b;
scanf ("%d%f", &a, &b);
printf ("value of a is %d\n", a);
printf ("value of b is %f\n", b);

ในตัวอย่าง เราได้มีตัวแปรสองตัวคือ a และ b และมีประเภทของตัวแปรเป็น integer และ floating ตามลำดับ ดังนั้นใน specifier input เราจึงใส่ %d สำหรับตัวแปร a และ %f สำหรับตัวแปร b อาร์กิวเมนต์ตัวต่อไปเราจะใส่ลำดับของตัวแปร โดยลำดับของตัวแปรจะแตกต่างจากฟังก์ชัน printf โดยจะนำหน้าด้วยเครื่องหมาย & ซึ่งมันหมายถึงที่อยู่ของตัวแปร ถ้าในกรณีที่ตัวแปรเป็นอาเรย์ของตัวอักษรนั้นเราไม่ต้องใส่

และนี่เป็นตัวอย่างของโปรแกรมเมื่อใส่ค่าเป็น 5 และ 10.5 ตามลำดับ

5 10.5
value of a is 5
value of b is 10.500000

Escape characters

Escape characters เป็นตัวอักษรพิเศษในภาษา C ที่จะต้องใช้สัญลักษณ์เครื่องหมาย \ นำหน้าเสมอ เพื่อไม่ให้เกิดข้อผิดพลาดในการคอมไพล์โปรแกรม เพราะว่าตัวอักษรนี้เป็นสัญลักษณ์ที่ตรงกันกับโครงสร้างของภาษา นี่เป็นรายการของตัวอักษรพิเศษในภาษา C

Escape characterCharacter represented
\aAlarm
\bBackspace
\nNewline
\rCarriage Return
\tHorizontal Tab
\vVertical Tab
\\Backslash
\'Single quotation mark
\"Double quotation mark
\?Question mark

ต่อไปมาดูตัวอย่างการใช้งานของ Escape characters ในภาษา C ซึ่งเราจะเก็บข้อความที่มีตัวอักษรเหล่านี้ไว้ภายในตัวแปร char และตัวแปร char array

#include <stdio.h>

int main ()
{
char tab = '\t';
char a = 'A';

char text[] = "His name is \"Mateo\".\n";
char text2[] =
"You can visit Mateo's website by asking him for address.\n";

printf("%c%c\n", tab, a);
printf("%s", text);
printf("%s", text2);

return 0;
}

ในตัวอย่าง เป็นการใช้งาน Escape characters ในการเขียนโปรแกรม ในสองตัวแปรแรก tab และ a นั้นเป็นตัวแปรแบบ char ตัวแปรแรกเป็นตัวแปรที่เป็นตัวอักษรพิเศษซึ่งหมายถึง tab และตัวแปรที่สองเป็นค่าปกติของ char ที่ไม่ใช่ตัวอักษรพิเศษ

ต่อมาในตัวแปร text และ text2 เป็นตัวแปรแบบ char array หรือตัวแปรที่เก็บข้อมูลของ char ได้มากกว่า 1 ตัวอักษร สำหรับการกำหนดค่าให้กับตัวแปรเราจึงใช้ \" สำหรับเครื่องหมาย " และ \' สำหรับเครื่องหมาย ' ส่วน \n นั้นเป็นตัวอักษรพิเศษที่หมายถึงการขึ้นบรรทัดใหม่ซึ่งเราจะใช้บ่อยในบทเรียนนี้

        A
His name is "Mateo".
You can visit Mateo's website by asking him for address.

นี่เป็นผลลัพธ์การทำงานของโปรแกรมในการใช้งาน Escape characters ในภาษา C

ในบทนี้ คุณได้เรียนรู้เกี่ยวกับการรับค่าและการแสดงผลในภาษา C เบื้องต้น เพื่อให้สามารถสร้างโปรแกรมที่มีการติดต่อกับผู้ใช้ได้ อย่างไรก็ตาม Input-output นั้นสามารถเป็นได้ในทางอื่นๆ เช่น การรับค่าจากเสียง กล้องถ่ายรูป หรืออาจจะเป็นการทำงานกับไฟล์ หรือแม้กระทั่งกับ Network สำหรับบทนี้ เราพูดถึงการรับค่าทางคีย์บอร์ดและการแสดงผลทางหน้าจอ Console


บทความเกี่ยวกับ อินพุต เอาต์พุต พื้นฐาน

อินพุต เอาต์พุต พื้นฐาน ในภาษา C#

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

อินพุต เอาต์พุต พื้นฐาน ในภาษา Java

ในการเขียนโปรแกรมนั้น สิ่งที่สำคัญคือการที่โปรแกรมสามารถติดต่อกับผู้ใช้ ซึ่งจะมีในสองลักษณะคือ Input คือการรับข้อมูลมาจากผู้ใช้ และนำมาประมวลผลในโปรแกรม และ Out...

อินพุต เอาต์พุต พื้นฐาน ในภาษา C++

สิ่งที่สำคัญที่สุดในการเขียนโปรแกรมคือ Input และ output ของโปรแกรม เพราะว่าทุกๆ โปรแกรมจำเป็นต้องติดต่อกับผู้ใช้ ในภาษา C++ มันใช้ stream เพื่อทำการกับ input แล...

อินพุต เอาต์พุต พื้นฐาน ในภาษา PHP

ในบทนี้ คุณจะได้เรียนรู้การรับค่าและการแสดงผลพื้นฐานในภาษา PHPในการเขียนโปรแกรม การติดต่อกับผู้ใช้นั้นเป็นส่วนหนึ่งที่สำคัญ เพื่อการแลกเปลี่ยนข้อมูลระหว่างผู้ใช...