ไลบรารีมาตรฐาน C++ มีชุดความสามารถอินพุต/เอาต์พุตมากมาย ซึ่งเราจะเห็นในบทต่อๆ ไป บทนี้จะกล่าวถึงการดำเนินการ I/O พื้นฐานและทั่วไปส่วนใหญ่ที่จำเป็นสำหรับการเขียนโปรแกรม C++
C++ I/O เกิดขึ้นในสตรีม ซึ่งเป็นลำดับของไบต์ หากไบต์ไหลจากอุปกรณ์ เช่น แป้นพิมพ์ ดิสก์ไดรฟ์ หรือการเชื่อมต่อเครือข่าย ฯลฯ ไปยังหน่วยความจำหลัก จะเรียกว่าการดำเนินการอินพุต และถ้าไบต์ไหลจากหน่วยความจำหลักไปยังอุปกรณ์ เช่น หน้าจอแสดงผล เครื่องพิมพ์ ดิสก์ไดรฟ์ หรือการเชื่อมต่อเครือข่าย ฯลฯ สิ่งนี้เรียกว่าการทำงานของเอาต์พุต .
สตรีมเอาท์พุตมาตรฐาน (cout)
วัตถุที่กำหนดไว้ล่วงหน้า cout เป็นตัวอย่างของ ostream ระดับ. กล่าวกันว่าวัตถุ cout นั้น "เชื่อมต่อกับ" อุปกรณ์เอาท์พุตมาตรฐาน ซึ่งมักจะเป็นหน้าจอแสดงผล ศาล ใช้ร่วมกับตัวดำเนินการแทรกกระแสซึ่งเขียนเป็น <<ซึ่งน้อยกว่าเครื่องหมายสองตัวดังแสดงในตัวอย่างต่อไปนี้
โค้ดตัวอย่าง
#include <iostream> using namespace std; int main() { char str[] = "Hello C++"; cout << "Value of str is : " << str << endl; }
ผลลัพธ์
Value of str is : Hello C++
คอมไพเลอร์ C++ ยังกำหนดชนิดข้อมูลของตัวแปรที่จะส่งออก และเลือกตัวดำเนินการแทรกสตรีมที่เหมาะสมเพื่อแสดงค่า ตัวดำเนินการ <<ถูกโอเวอร์โหลดเพื่อส่งออกรายการข้อมูลของค่าประเภทจำนวนเต็ม, ทุ่น, คู่, สตริง และค่าตัวชี้
ตัวดำเนินการแทรก <<อาจใช้มากกว่าหนึ่งครั้งในคำสั่งเดียวดังที่แสดงด้านบนและ endl ใช้เพื่อเพิ่มบรรทัดใหม่ที่ท้ายบรรทัด
สตรีมอินพุตมาตรฐาน (cin)
cin อ็อบเจ็กต์ที่กำหนดไว้ล่วงหน้าเป็นอินสแตนซ์ของคลาส istream กล่าวกันว่าวัตถุ cin ติดอยู่กับอุปกรณ์อินพุตมาตรฐาน ซึ่งมักจะเป็นแป้นพิมพ์ cin ใช้ร่วมกับตัวดำเนินการการแยกกระแส ซึ่งเขียนเป็น>> ซึ่งมากกว่าเครื่องหมายสองตัวดังที่แสดงในตัวอย่างต่อไปนี้
โค้ดตัวอย่าง
#include <iostream> using namespace std; int main() { char name[50]; cout << "Please enter your name: "; cin >> name; cout << "Your name is: " << name << endl; }
ผลลัพธ์
Please enter your name: cplusplus Your name is: cplusplus
คอมไพเลอร์ C++ ยังกำหนดประเภทข้อมูลของค่าที่ป้อนและเลือกตัวดำเนินการการแยกสตรีมที่เหมาะสมเพื่อแยกค่าและเก็บไว้ในตัวแปรที่กำหนด
ตัวดำเนินการการแยกสตรีม>> อาจใช้มากกว่าหนึ่งครั้งในคำสั่งเดียว หากต้องการขอข้อมูลมากกว่าหนึ่งรายการ คุณสามารถใช้สิ่งต่อไปนี้ -
cin >> name >> age;
ซึ่งจะเทียบเท่ากับสองข้อความต่อไปนี้ -
cin >> name; cin >> age;