C++ 基本输入/输出

C++ 基本输入/输出

C++ 标准库提供了一套广泛的输入/输出功能,我们将在后面的章节中详细了解。本章将讨论对C++编程最基本和最常见的I/O操作。

C++ 的I/O是通过流进行的,流是字节序列。如果字节从设备(如键盘、硬盘驱动器、网络连接等)流向主存,这被称为 输入操作 ,如果字节从主存流向设备(如显示屏、打印机、硬盘驱动器或网络连接等),这被称为 输出操作

I/O库头文件

下面是对C++程序重要的头文件列表:

序号 头文件和函数及描述
1 <iostream> 此文件定义了 cin, cout, cerrclog 对象,分别对应标准输入流、标准输出流、无缓冲的标准错误流和有缓冲的标准错误流。
2 <iomanip> 此文件声明了使用所谓参数化流操纵器进行格式化I/O时有用的服务,如 setwsetprecision
3 <fstream> 此文件声明了用户可控文件处理的服务。我们将在有关文件和流的相关章节中详细讨论它。

标准输出流(cout)

预定义对象 coutostream 类的一个实例。cout对象被称为“连接到”标准输出设备,通常为显示屏。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)

预定义对象 cinistream 类的一个实例。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;

标准错误流(cerr)

预定义对象 cerrostream 类的一个实例。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....

标准日志流(clog)

预定义对象 clogostream 类的实例。clog对象被称为附加到标准错误设备上,该设备也是一个显示屏,但对象 clog 是有缓冲的。这意味着对clog的每次插入可能会导致其输出被保持在缓冲区中,直到缓冲区填满或刷新为止。

使用示例中显示的流插入运算符,也会使用 clog

#include <iostream>

using namespace std;

int main() {
   char str[] = "Unable to read....";

   clog << "Error message : " << str << endl;
}

当上述代码被编译并执行时,产生以下结果 –

Error message : Unable to read....

你不能在这些小示例中看到cout、cerr和clog之间的任何差异,但在编写和执行大型程序时,差异变得显而易见。因此,使用cerr流来显示错误消息是一个好的实践,在显示其他日志消息时应该使用clog流。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程