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

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

using namespace std;

ในบทนี้ เราจะพูดเพียงแค่การ input และ output แบบพื้นฐานเท่านั้น ซึ่งจะเป็นการรับค่าและการแสดงผล ในการรับค่านั้นจะเป็นการรับค่าจาก Keyboard และการแสดงผลจะเป็นการแสดงผลใน Console

Standard output

โดยทั่วไป การแสดงผลมักจะถูกแสดงผลออกทางหน้าจอของคอมพิวเตอร์ cout เป็น stream object ที่เราสามารถแสดงผลตัวอักษรใดๆ ออกทางจอภาพได้

#include <iostream>

using namespace std;

int main () {
int myNumber = 5;
cout << "This is my sentence." << endl;
cout << 1234 << endl;
cout << myNumber << endl;
return 0;
}

จากตัวอย่าง เราได้แสดงตัวอักษรออกทางจอภาพในบรรทัดแรก ต่อมาเป็นตัวเลข และสุดท้ายเราได้แสดงค่าของตัวแปร myNumber ดังนั้น เราสามารถใช้ cout เพื่อแสดงผลตัวอักษร ตัวแปรหรือสิ่งต่างๆ ออกทางจอภาพได้ ในการใช้งานคำสั่ง cout จะตามด้วยเครื่องหมายน้อยกว่าสองอัน << และตามด้วยข้อความที่จะแสดง คุณสามารถใส่ได้หลายพารามิเตอร์โดยการคั่นด้วยเครื่องหมายดังกล่าวไปเรื่อยๆ และข้างล่างนี้เป็นผลลัพธ์ของโปรแกรม

This is my sentence.
1234
5

ในโปรแกรม คุณได้เห็นโค้ดบางส่วนมาก่อนหน้าแล้ว เช่น endl มันเป็นค่าคงที่จากไลบรารี่มาตรฐาน std ซึ่งมันหมายถึงการขึ้นบรรทัดใหม่ ซึ่งเหมือนกันกับการใช้ \n.

Standard input

แค่การแสดงผลนั้นยังไม่เพียงพอ ในภาษา C++ ยังมี cin stream object ซึ่งให้เราสามารถที่จะรับค่าจากคีย์บอร์ดได้ เรามักจะใช้ cin กับตัวแปร มาดูตัวอย่างการใช้

#include <iostream>
#include <string>

using namespace std;

int main () {
int age;
string name;
cout << "What is your name: ";
cin >> name; // get name from keyboard
cout << "Enter you age: ";
cin >> age; // get age from keyboard
cout << "Hi " << name ;
cout << ", your age is " << age ;
return 0;
}

หลังจากโปรแกรมรัน input อันแรกคือ cin >> name มันจะรอรับค่าจากคีย์บอร์ดจนกว่าเราจะกดปุ่ม enter และนี่หมายถึงการรับค่าเสร็จสิ้น และข้อมูลจะถูกบันทึกลงในตัวแปร name สำหรับ input อันที่สองโปรแกรมที่จะทำแบบเดียวกัน แต่มันจะบันทึกข้อมูลลองในตัวแปร age แทน ในการรับค่าคุณจะสังเกตุได้ว่าเราใช้เครื่องหมายมากกว่าสองอันแทน >>

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

What is your name: Marcus
Enter you age: 18
Hi Marcus, your age is 18.

คุณยังสามารถกดปุ่ม space ได้สำหรับการรับค่าถัดไป ใน cin steam object การรับค่าจะจบเมื่อมันพบกับ enter key (new line) หรือ space key เพื่อเป็นการสิ้นสุดการรับค่าจาก Keyboard stream

#include <iostream>

using namespace std;

int main () {
int a, b, c;

cout << "Enter value of a, b, c: ";
cin >> a >> b >> c;

if (a > b && a > c) {
cout << "a is the greatest." << endl;
}
else if (b > c) {
cout << "b is the greatest." << endl;
}
else {
cout << "c is the greatest." << endl;
}
return 0;
}

เพื่อให้คุณเข้าใจในการรับค่าในภาษา C++ มากขึ้น นี่เป็นตัวอย่างของโปรแกรมในการรับค่าของตัวเลขจำนวนสามตัวทางคีย์บอร์ด คำสั่ง cin สามารถรับค่าได้ในครั้งเดียวโดยการคั่นด้วยเครื่องหมาย >> ไปเรื่อยๆ ในตัวอย่างเราได้รับค่าตัวแปร a b และ c ในคำสั่งเดียวกัน

Enter value of a, b, c: 2
5
3
b is the greatest.
Enter value of a, b, c: 2 5 3
b is the greatest.

นี่เป็นผลลัพธ์การทำงานของโปรแกรม คุณจะเห็นว่าเราได้รันโปรแกรมสองครั้งแต่ละครั้งจะรับค่าตัวเลขจำนวนสามตัว ในการรับค่าในภาษา C++ นั้นเราสามารถใช้ white space หรือ newline ในการสิ้นสุดการรับค่าแต่ละค่าได้ ซึ่งได้ผลลัพธ์เหมือนกัน

การรับค่าทั้งบรรทัดด้วยฟังก์ชัน getline()

ในตัวอย่างก่อนหน้า แสดงให้คุณเห็นว่าเราสามารถใช้ white space ในการสิ้นสุดการรับค่าของแต่ละตัวแปร อย่างไรก็ตาม cin ยังให้เราสามารถรับค่า space key ได้โดยการใช้ฟังก์ชัน getline() ซึ่งมากับไลบรารี่ของ string นี่เป็นตัวอย่าง มาดูตัวอย่างของโปรแกรม

#include <iostream>

using namespace std;

int main () {
string text;
cout << "Enter message: ";
getline(cin, text);
cout << "You >> " << text;
return 0;
}

ในตัวอย่าง เป็นการรับค่าข้อความทั้งบรรทัดและนำมาใส่ตัวแปร String text ฟังก์ชันนี้ให้เราสามารถที่จะทำการรับค่าของ space key ได้ เช่น ประโยค หรือคำหลายคำที่คั่นด้วยช่องว่าง โดยค่าของ space จะเป็นเหมือนตัวอักษรว่างปล่าวตัวหนึงเหมือนตัวอักษรตัวอื่นๆ ดังนั้นเราจึงต้องกดเพียงแค่ Enter สำหรับการจบการรับค่า พารามิเตอร์ของฟังก์ชันนั้นมีสองตัวคือ ตัวแรกจะเป็น steam object cin และตัวที่สองเป็นตัวแปรที่เราต้องการเก็บค่าไว้

Type something: I'm learning C++ on marcuscode.com.
You: I'm learning C++ on marcuscode.com.

นี่เป็นผลลัพธ์การทำงานของโปรแกรมสำหรับการรับค่าทั้งบรรทัดในภาษา C++

Escape characters

ตัวอักษรที่ขึ้นต้นด้วยเครื่องหมาย Slash (\) และตามด้วยตัวอักษรหนึ่งตัวนั้นเรียกว่า Escape characters มันเป็นตัวอักษรที่ใช้ในการแสดงการขึ้นบรรทัดใหม่ เครื่องหมาย quote หรือตัวอักษรที่สำคัญอื่นๆ ที่ไม่สามารถแสดงได้ในแบบปกติ หรือว่าถูกใช้ในการกำหนดไวยากรณ์ของภาษา เช่น เครื่องหมาย " จะใช้กับ String literal ดังนั้นในการใช้ตัวอักษรเหล่านี้คุณจำเป็นต้องทำการ Escape มันด้วยเครื่องหมาย \ เสมอ

นี่เป็นรายการของ Escape characters ในภาษา C++

Escape characterRepresents
\aBell (alert)
\bBackspace
\fFormfeed
\nNew line
\rCarriage return
\tHorizontal tab
\vVertical tab
\'Single quotation mark
\"Double quotation mark
\\Backslash
\?Literal question mark
\ oooASCII character in octal notation
\x hhASCII character in hexadecimal notation
\x hhhhUnicode character in hexadecimal notation.

ต่อไปมาดูตัวอย่างการใช้งาน Escape character ในภาษา C++ ซึ่งเป็นโปรแกรมเกี่ยวกับการแสดงผล

#include <iostream>

using namespace std;

int main () {

cout << "\"The most popular language in 2016\".\n";
cout << "#\tLanguage\tYear\n";
cout << "1\tC\t1972\n";
cout << "2\tJava\t1995\n";
cout << "3\tPython\t1991\n";
cout << "4\tC++\t1983\n";
cout << "5\tR\t1993\n";

return 0;
}

ในตัวอย่าง เป็นการใช้งาน Escape character สำหรับแสดงตัวอักษรต่างๆ เราได้แสดงตัวอักษร quote ด้วย \" แสดง Tab ด้วย \t และการขึ้นบรรทัดใหม่ด้วย \n

"The most popular language in 2016".
# Language Year
1 C 1972
2 Java 1995
3 Python 1991
4 C++ 1983
5 R 1993

นี่เป็นผลลัพธ์การทำงานของโปรแกรม

ในบทนี้ เราได้ครอบคุมพื้นฐานของการรับค่าและการแสดงผลในภาษา C++ เราได้พูดถึงการแสดงผลโดยการใช้ cout steam object และการรับค่าด้วย cin steam object ซึ่งเป็นสิ่งที่สำคัญในการเขียนโปรแกรมที่มีการติดต่อกับผู้ใช้เพื่อรับข้อมูลและแสดงผล และเรายังให้คุณทราบถึงวิธีการรับค่า String ทีละบรรทัดโดยการใช้ฟังก์ชัน getline() และ Escape characters


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

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

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

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

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

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

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

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

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