C ++ หรือ Basic Input เอาท์พุท
ห้องสมุดมาตรฐาน c ++ ให้ชุดที่อุดมไปด้วยฟังก์ชั่นอินพุต / เอาต์พุตเราจะอธิบายไว้ในบทที่ตามมา ในบทนี้จะกล่าวถึงการเขียนโปรแกรมภาษา C ++ ที่พื้นฐานทั่วไป I / O การดำเนินงาน
c ++ I / O ที่เกิดขึ้นในกระแสกระแสเป็นลำดับของไบต์ หากกระแส byte จะไหลจากอุปกรณ์ (เช่นแป้นพิมพ์, ดิสก์ไดรฟ์เชื่อมต่อเครือข่ายอื่น ๆ )หน่วยความจำซึ่งเรียกว่าการดำเนินการป้อนข้อมูลหากกระแส byte ที่ไหลจากอุปกรณ์หน่วยความจำ (เช่นจอแสดงผล, เครื่องพิมพ์ดิสก์ไดรฟ์เชื่อมต่อเครือข่ายอื่น ๆ )ซึ่งเรียกว่าการดำเนินการส่งออก
I / O ไฟล์ส่วนหัวห้องสมุด
ส่วนหัวของแฟ้มต่อไปนี้มีความสำคัญในการเขียนโปรแกรมภาษา C ++
头文件 | 函数和描述 |
---|---|
<iostream> | 该文件定义了cin、cout、cerr和clog对象,分别对应于标准输入流、标准输出流、非缓冲标准错误流和缓冲标准错误流。 |
<iomanip> | 该文件通过所谓的参数化的流操纵器(比如setw和setprecision),来声明对执行标准化 I/O 有用的服务。 |
<fstream> | 该文件为用户控制的文件处理声明服务。我们将在文件和流的相关章节讨论它的细节。 |
กระแสออกมาตรฐาน (ศาล)
ศาลวัตถุที่กำหนดไว้ล่วงหน้าเป็นตัวอย่างของการเรียน ostreamวัตถุศาลคือ "การเชื่อมต่อ" ไปยังอุปกรณ์ส่งออกมาตรฐานมักจะแสดงผลศาล << ผู้ประกอบการจะใช้ร่วมกับการแทรกกระแสดังต่อไปนี้:
#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 << "请输入您的名称: "; cin >> name; cout << "您的名称是: " << name << endl; }
เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะแจ้งให้ผู้ใช้ป้อนชื่อ เมื่อผู้ใช้ป้อนค่าและกดปุ่ม Enter คุณจะเห็นผลลัพธ์ต่อไปนี้:
请输入您的名称: cplusplus 您的名称是: cplusplus
c ++ คอมไพเลอร์ขึ้นอยู่กับชนิดของค่าการป้อนข้อมูลให้เลือกดำเนินการแยกสตรีมที่เหมาะสมเพื่อดึงค่าและเก็บไว้ในตัวแปรที่กำหนด
กระแสดำเนินการแยก >> สามารถนำมาใช้หลายครั้งในการแถลงถ้าเสียงส่วนใหญ่ของความต้องการการป้อนข้อมูลคุณสามารถใช้คำสั่งต่อไปนี้:
cin >> name >> age;
นี้จะเทียบเท่ากับสองงบต่อไปนี้:
cin >> name; cin >> age;
กระแสข้อผิดพลาดมาตรฐาน (cerr)
ที่กำหนดไว้ล่วงหน้าcerr วัตถุ ostreamเป็นตัวอย่างของการเรียน วัตถุ cerr ร่วมกับอุปกรณ์ข้อผิดพลาดมาตรฐานมักจะแสดงผล แต่วัตถุที่ไม่เป็นบัฟเฟอร์cerr และแต่ละกระแส cerr ถูกแทรกทันทีในการส่งออก
cerr ยังสตรีมดำเนินการแทรก << และนำมาใช้ในการรวมกันดังต่อไปนี้:
#include <iostream> using namespace std; int main( ) { char str[] = "Unable to read...."; cerr << "Error message : " << str << endl; }
เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:
Error message : Unable to read....
กระแสการเข้าสู่ระบบมาตรฐาน (อุดตัน)
วัตถุที่กำหนดไว้ล่วงหน้าอุดตันเป็นตัวอย่างของการเรียน ostreamเกิดการอุดตันวัตถุร่วมกับอุปกรณ์ข้อผิดพลาดมาตรฐานมักจะแสดงผลแต่วัตถุที่มีบัฟเฟอร์เกิดการอุดตันซึ่งหมายความว่ากระแสในแต่ละเข้าไปอุดตันจะถูกเก็บไว้ในบัฟเฟอร์จนกว่าบัฟเฟอร์เติมหรือเฉพาะเมื่อบัฟเฟอร์ส่งออกที่มีการล้าง
นอกจากนี้ยังเกิดการอุดตันผู้ประกอบการสตรีมแทรก << ใช้ในการรวมกันดังต่อไปนี้:
#include <iostream> using namespace std; int main( ) { char str[] = "Unable to read...."; clog << "Error message : " << str << endl; }
เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:
Error message : Unable to read....
ผ่านตัวอย่างขนาดเล็กเหล่านี้เราไม่สามารถแยกความแตกต่างศาล, cerr และเกิดการอุดตันที่แตกต่างกัน แต่ในการเตรียมและการดำเนินงานของโครงการขนาดใหญ่ความแตกต่างระหว่างพวกเขากลายเป็นที่ชัดเจนมาก ฝึกการเขียนโปรแกรมให้ดีบอกเราว่ากระแสการใช้ cerr เพื่อแสดงข้อความแสดงข้อผิดพลาดในขณะที่คนอื่นใช้บันทึกข้อความอุดตันส่งออกกระแส