C++ input dan output asas


Pustaka standard C++ menyediakan set kaya fungsi input/output, yang akan kami perkenalkan dalam bab seterusnya. Bab ini membincangkan operasi I/O yang paling asas dan biasa dalam pengaturcaraan C++.

C++ I/O berlaku dalam strim, yang merupakan jujukan bait. Jika aliran bait mengalir dari peranti (seperti papan kekunci, pemacu cakera, sambungan rangkaian, dll.) ke memori, ini dipanggil operasi input. Jika aliran bait mengalir dari memori ke peranti (seperti paparan, pencetak, pemacu cakera, sambungan rangkaian, dll.), ini dipanggil operasi output.

Fail pengepala perpustakaan I/O

Fail pengepala berikut sangat penting dalam pengaturcaraan C++.

Fail pengepalaFungsi dan penerangan
<iostream>Fail ini mentakrifkan objek
头文件函数和描述
<iostream>该文件定义了 cin、cout、cerrclog 对象,分别对应于标准输入流、标准输出流、非缓冲标准错误流和缓冲标准错误流。
<iomanip>该文件通过所谓的参数化的流操纵器(比如 setwsetprecision),来声明对执行标准化 I/O 有用的服务。
<fstream>该文件为用户控制的文件处理声明服务。我们将在文件和流的相关章节讨论它的细节。
cin, cout, cerr<🎜> dan <🎜>clog<🎜>, yang sepadan dengan input standard strim masing-masing, strim keluaran standard, strim ralat standard tidak terpimpan dan strim ralat standard tertimbal.
<iomanip>Fail ini dihantar melalui apa yang dipanggil manipulator aliran berparameter (seperti <🎜>setw<🎜> dan <🎜> setprecision <🎜>), untuk mengisytiharkan perkhidmatan berguna untuk melaksanakan I/O piawai.
<fstream>Fail ini menyediakan kenyataan pemprosesan fail dikawal pengguna. Kami akan membincangkan butiran ini dalam bab yang berkaitan tentang fail dan strim.

Strim keluaran standard (cout)

Objek pratakrif cout ialah contoh kelas ostream. Objek cout "bersambung" ke peranti output standard, biasanya skrin paparan. cout digunakan bersama dengan operator sisipan strim << seperti yang ditunjukkan di bawah:

#include <iostream>
 
using namespace std;
 
int main( )
{
   char str[] = "Hello C++";
 
   cout << "Value of str is : " << str << endl;
}

Apabila kod di atas disusun dan dilaksanakan, ia menghasilkan keputusan berikut:

Value of str is : Hello C++

Pengkompil C++ memilih operator sisipan strim yang sesuai untuk memaparkan nilai berdasarkan jenis data pembolehubah yang akan dikeluarkan. Operator << dibebankan untuk mengeluarkan item data jenis terbina dalam (integer, float, double, rentetan dan penunjuk).

Operator sisipan strim << boleh digunakan berbilang kali dalam penyataan, seperti yang ditunjukkan dalam contoh di atas, endl digunakan untuk menambah aksara baris baharu di hujung baris.

Strim input standard (cin)

Objek pratakrif cin ialah tika kelas istream. Objek cin dilampirkan pada peranti input standard, biasanya papan kekunci. cin digunakan bersama dengan operator pengekstrakan strim >> seperti yang ditunjukkan di bawah:

#include <iostream>
 
using namespace std;
 
int main( )
{
   char name[50];
 
   cout << "请输入您的名称: ";
   cin >> name;
   cout << "您的名称是: " << name << endl;
 
}

Apabila kod di atas disusun dan dilaksanakan, ia menggesa pengguna untuk nama. Apabila pengguna memasukkan nilai dan menekan kekunci Enter, dia akan melihat hasil berikut:

请输入您的名称: cplusplus
您的名称是: cplusplus

Pengkompil C++ memilih operator pengekstrakan strim yang sesuai untuk mengekstrak nilai berdasarkan jenis data nilai untuk dimasukkan, dan meletakkan Ia disimpan dalam pembolehubah yang diberikan.

Operator pengekstrakan strim>> boleh digunakan berbilang kali dalam satu kenyataan Jika berbilang input data diperlukan, pernyataan berikut boleh digunakan:

cin >> name >> age;

Ini bersamaan dengan dua pernyataan berikut. :

cin >> name;
cin >> age;

Strim Ralat Piawai (cerr)

Objek pratakrif cerr ialah contoh kelas ostream. Objek cerr dilampirkan pada peranti ralat standard, biasanya skrin paparan, tetapi objek cerr tidak ditimbal dan setiap aliran yang dimasukkan ke dalam cerr dikeluarkan serta-merta.

cerr juga digunakan bersama dengan operator sisipan strim << seperti yang ditunjukkan di bawah:

#include <iostream>
 
using namespace std;
 
int main( )
{
   char str[] = "Unable to read....";
 
   cerr << "Error message : " << str << endl;
}

Apabila kod di atas disusun dan dilaksanakan, ia akan Menghasilkan keputusan berikut:

Error message : Unable to read....

Strim log standard (sumbat)

Objek pratakrif sumbat ialah contoh kelas ostream. Objek tersumbat dilampirkan pada peranti ralat standard, biasanya skrin paparan, tetapi objek tersumbat ditimbal. Ini bermakna setiap aliran yang dimasukkan ke dalam terompah pertama kali disimpan dalam penimbal dan tidak dikeluarkan sehingga penimbal terisi atau penimbal disiram.

clog juga digunakan bersama dengan operator sisipan strim << seperti yang ditunjukkan di bawah:

#include <iostream>
 
using namespace std;
 
int main( )
{
   char str[] = "Unable to read....";
 
   clog << "Error message : " << str << endl;
}

Apabila kod di atas disusun dan dilaksanakan, ia akan menghasilkan keputusan berikut:

Error message : Unable to read....

Dengan contoh-contoh kecil ini, kita tidak dapat membezakan antara cout, cerr, dan clog, tetapi apabila menulis dan melaksanakan program besar, perbezaan antara mereka menjadi sangat jelas. Jadi amalan pengaturcaraan yang baik memberitahu kami untuk menggunakan aliran cerr untuk memaparkan mesej ralat, dan mesej log lain untuk menggunakan aliran tersumbat untuk menghasilkan.