当前位置: 首页 > 文档资料 > C++ 中文教程 >

C++ Basic Input/Output

优质
小牛编辑
135浏览
2023-12-01

C ++标准库提供了一组广泛的输入/输出功能,我们将在后续章节中看到。 本章将讨论C ++编程所需的非常基本和最常见的I/O操作。

C ++ I/O发生在流中,它是字节序列。 如果字节从键盘,磁盘驱动器或网络连接等设备流向主存储器,则称为input operation ,如果字节从主存储器流向显示屏,打印机,磁盘驱动器等设备或者网络连接等,这称为output operation

I/O库头文件

以下头文件对C ++程序很重要 -

Sr.No头文件和功能及描述
1

《iostream》

此文件定义cin, cout, cerrclog对象,它们分别对应于标准输入流,标准输出流,未缓冲的标准错误流和缓冲的标准错误流。

2

《iomanip》

此文件声明了对使用所谓的参数化流操作setprecision (例如setwsetprecision执行格式化I/O有用的服务。

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;
}

编译并执行上述代码时,将提示您输入名称。 输入一个值,然后按Enter键以查看以下结果 -

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还与流插入运算符一起使用,如以下示例所示。

#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。