[C++基本语法:从菜鸟变成大佬系列,就像1,2,3那么简单](五):C++的输入输出

怎样输入输出?

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

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

I / O的头文件

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

类型 描述
<iostream> 此文件定义分别对应于标准输入流、标准输出流、未缓冲标准错误流和缓冲标准错误流的 cincoutcerrclog
<iomanip> 此文件声明服务可用于使用所谓的参数化流操纵器(如 setwsetprecision)执行格式化的 I/O。
<fstream> 此文件声明用于用户控制的文件处理的服务。

 

 

 

 

标准输出流(cout)

预定义对象coutostream的实例cout对象被称为“连接”标准输出设备,通常是显示屏。cout用于在结合流插入操作员,其被写为'<<'其比迹象少两个如示于下述的例子。

1 #include <iostream>
2 using namespace std;
3 int main() {
4    char str[] = "Hello C++";
5    cout << "Value of str is : " << str << endl;
6 }
View Code

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

1 Value of str is : Hello C++
View Code

C++编译器还确定要输出的变量的数据类型,并选择适当的流插入运算符来显示该值。<<运算符被重载以输出内置类型的数据项integer,float,double,strings和pointer值。

插入运算符<<可以在单个语句中多次使用,如上所示,endl用于在行的末尾添加换行符。

标准输入流(cin)

预定义对象 cinistream 类的实例。cin 对象表示连接到标准输入设备,通常为键盘。cin 与流提取运算符结合使用,该运算符被写入 '>>',这比以下示例所示的符号大于两个符号。

1 #include <iostream>
2 using namespace std;
3 int main() {
4    char name[50];
5    cout << "Please enter your name: ";
6    cin >> name;
7    cout << "Your name is: " << name << endl;
8 }
View Code

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

1 Please enter your name: cplusplus
2 Your name is: cplusplus
View Code

C++编译器还确定输入值的数据类型,并选择适当的流提取运算符以提取值并将其存储在给定变量中。

流提取运算符>>可以在单个语句中使用多次。要请求多个数据,您可以使用以下内容

1 cin >> name >> age;
View Code

这相当于以下两个陈述

1 cin >> name;
2 cin >> age;
View Code

标准错误流(cerr)

预定义对象cerrostream的实例cerr对象被称为附加到标准错误设备,它也是一个显示屏,但是对象cerr是非缓冲的,每个流插入到cerr会导致其输出立即出现。

所述CERR也与流插入操作一起使用如示于下述的例子。

1 #include <iostream>
2 using namespace std;
3 int main() {
4    char str[] = "Unable to read....";
5    cerr << "Error message : " << str << endl;
6 }
View Code

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

1 Error message : Unable to read....
View Code

标准日志流(clog)

预定义对象clogostream的实例据说clog对象附加到标准错误设备,标准错误设备也是显示屏,但缓冲了对象clog这意味着每次插入clog都可能导致其输出保持在缓冲区中,直到填充缓冲区或刷新缓冲区为止。

堵塞也与流插入操作一起使用如示于下述的例子。

1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5    char str[] = "Unable to read....";
6    clog << "Error message : " << str << endl;
7 }
View Code

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

1 Error message : Unable to read....
View Code

你可能无法看到cout,cerr和clog与这些小例子有任何区别,但在编写和执行大程序时,差异变得明显。因此,最好使用cerr流显示错误消息,并在显示其他日志消息时应使用clog。

For English visitors, please click here

posted @ 2019-07-23 12:21  SSFLRK  阅读(307)  评论(0编辑  收藏  举报