📜  C++流类结构(1)

📅  最后修改于: 2023-12-03 15:29:55.346000             🧑  作者: Mango

C++流类结构介绍

C++中的流类结构是非常常用的一个概念,它主要是用来进行输入/输出操作的。在C++中,有两种类型的流:输入流和输出流。在输入流中,数据是从设备(键盘、硬盘等)中读入到程序中,而在输出流中,数据是从程序输出到设备(屏幕、硬盘等)中。

C++流类结构由两个类组成:istreamostreamistream类主要用于输入操作,而ostream类用于输出操作。这两个类都是从ios类派生出来的,所以它们都有很多共同的特点。

流操作符

C++中的流操作符<<>>被重载了,使得可以使用它们对数据进行输入和输出操作。

<<是向输出流中输出数据,而>>则是从输入流中读取数据。比如可以使用cout << "Hello, World!"将字符串"Hello, World!"输出到屏幕上,也可以使用cin >> num从键盘中读取一个整数,并将其保存到变量num中。

// 输出操作示例
#include <iostream>
using namespace std;

int main() {
   int num = 1;
   cout << "The value of num is: " << num << endl;
   return 0;
}

// 输出:The value of num is: 1
// 输入操作示例
#include <iostream>
using namespace std;

int main() {
   int num;
   cout << "Please enter an integer: ";
   cin >> num;
   cout << "You have entered: " << num << endl;
   return 0;
}

// 输入:Please enter an integer: 28
// 输出:You have entered: 28
标准流

C++中预定义好了三个标准的流对象:cincoutcerr。其中,cin用于从键盘中读取数据,cout用于向屏幕上输出数据,cerr用于向屏幕上输出错误信息。

#include <iostream>
using namespace std;

int main() {
   int num;
   cout << "Please enter an integer: ";
   cin >> num;
   cout << "You have entered: " << num << endl;
   cerr << "Error occurred!" << endl;
   return 0;
}

// 输入:Please enter an integer: 28
// 输出:You have entered: 28
// 输出:Error occurred!
文件流

除了使用标准流对象,还可以使用文件流操作文件。文件流可以用来读取或者写入文件。使用文件流时,需要包含头文件<fstream>

// 从文件中读取数据
#include <iostream>
#include <fstream>
using namespace std;

int main() {
   ofstream outfile;
   outfile.open("data.txt"); // 打开文件
   outfile << "Hello C++" << endl; // 写入文件
   outfile.close(); // 关闭文件

   ifstream infile;
   infile.open("data.txt"); // 打开文件
   string str;
   infile >> str; // 读取文件
   cout << str << endl;
   infile.close(); // 关闭文件
   return 0;
}

// 输出:Hello
结束语

C++流类结构是一个非常常用的概念,可以方便地实现输入/输出操作。通过掌握C++流类结构,可以使得程序更加高效和易于维护。