C++ 标准输入,标准输出,标准错误和标准日志
C++ 标准库提供了一组丰富的输入/输出功能,我们将在后续的章节进行介绍。本章将讨论 C++ 编程中最基本和最常见的 I/O 操作。
C++ 的 I/O 发生在流中,流是字节序列。如果字节流是从设备(如键盘、磁盘驱动器、网络连接等)流向内存,这叫做输入操作。如果字节流是从内存流向设备(如显示屏、打印机、磁盘驱动器、网络连接等),这叫做输出操作。
I/O 库头文件
下列的头文件在 C++ 编程中很重要。
头文件 | 函数和描述 |
---|---|
<iostream> | 该文件定义了 cin、cout、cerr 和 clog 对象,分别对应于标准输入流、标准输出流、非缓冲标准错误流和缓冲标准错误流。 |
<iomanip> | 该文件通过所谓的参数化的流操纵器(比如 setw 和 setprecision),来声明对执行标准化 I/O 有用的服务。 |
<fstream> | 该文件为用户控制的文件处理声明服务。我们将在文件和流的相关章节讨论它的细节。 |
标准输出流(cout)
预定义的对象 cout 是 iostream 类的一个实例。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++ 编译器根据要输出变量的数据类型,选择合适的流插入运算符来显示值。<< 运算符被重载来输出内置类型(整型、浮点型、double 型、字符串和指针)的数据项。
流插入运算符 << 在一个语句中可以多次使用,如上面实例中所示,endl 用于在行末添加一个换行符。
标准输入流(cin)
预定义的对象 cin 是 iostream 类的一个实例。cin 对象附属到标准输入设备,通常是键盘。cin 是与流提取运算符 >> 结合使用的,如下所示:
#include <iostream>using namespace std;int main( )
{char name[50];cout << "请输入您的名称: ";cin >> name;cout << "您的名称是: " << name << endl;}
当上面的代码被编译和执行时,它会提示用户输入名称。当用户输入一个值,并按回车键,就会看到下列结果:
请输入您的名称: cplusplus
您的名称是: cplusplus
C++ 编译器根据要输入值的数据类型,选择合适的流提取运算符来提取值,并把它存储在给定的变量中。
流提取运算符 >> 在一个语句中可以多次使用,如果要求输入多个数据,可以使用如下语句:
cin >> name >> age;
这相当于下面两个语句:
cin >> name;
cin >> age;
标准错误流(cerr)
预定义的对象 cerr 是 iostream 类的一个实例。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)
预定义的对象 clog 是 iostream 类的一个实例。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 流来输出。
C++ 标准输入,标准输出,标准错误和标准日志相关推荐
- dup、dup2实现文件描述符重定向(标准输入、标准输出、标准错误输出)
目录 dup函数 dup2函数 重定向标准输入 重定向标准输出 重定向标准错误输出 重定向恢复 总结 在前文中,可以知道,文件描述符实际上是指向文件表项的指针数组索引,也就相当于每个文件描述符都对应一 ...
- linux 的错误输出黑洞,Linux的标准输出、标准错误输出、nohup
1.在bash中标准输出可以用1来表示:通常来说这个1可以省略: 如./xxx >/dev/null 和 ./xxx 1>/dev/null 是一个意思 2.在bash中标准错误输出可以用 ...
- 【Linux】21.Linux输入输出重定向、2>1、标准输入、标准输出、标准错误
输入输出重定向.2>&1.标准输入.标准输出.标准错误 https://zhuanlan.zhihu.com/p/47765176 ./test.sh > log.txt 2> ...
- python标准输入输出用来干什么_python 以标准输出(sys.stdout)为例,看python的标准输入、标准错误输出...
标准输出(sys.stdout)对应的操作就是print(打印)了,标准输入(sys.stdin)则对应input(接收输入)操作,标准错误输出和标准输出类似也是print(打印). python最基 ...
- pythonsys标准_python 以标准输出(sys.stdout)为例,看python的标准输入、标准错误输出...
标准输出(sys.stdout)对应的操作就是print(打印)了,标准输入(sys.stdin)则对应input(接收输入)操作,标准错误输出和标准输出类似也是print(打印). python最基 ...
- Shell:标准输入(stdin)、标准输出(stdout)、标准错误输出(stderr)介绍
UNIX系统shell使用 1.文件描述符0与进程的标准输入(一般是键盘)相关联: 2.文件描述符1与标准输出(一般是显示器)相关联: 3.文件描述符2与标准出错输出(一般是显示器)相关联 1.输出 ...
- 标准输入,标准输出和标准错误
当我们使用文件描述符进行操作时,需要操作标准输入.标准输出.标准错误,可以包含如下头文件: #include <unistd.h> 这个头文件中定义了标准设备: /* Standard f ...
- Linux的标准输入、标准输出和标准错误
Linux的标准输入.标准输出和标准错误 什么是文件描述符? 文件描述符是一个简单的正整数,用以标明每一个被进程所打开的文件和socket. 最前面的三个文件描述符(0,1,2)分别与标准输入(std ...
- Linux的标准输出 标准错误 标准输入 重定向
标准输入(STDIN)-0 默认接受来自键盘的输入 标准输出(STDOUT)-1 默认输出到终端窗口 标准错误(STDERR)-2 默认输出到终端窗口 > 把STDOUT重定向到文件 2> ...
最新文章
- 错误名称:EntityCommandExecutionException
- .net中语音识别和语音合成(二)语音合成提高篇
- ASP.NET中前台javascript与后台代码调用
- C#中String对象转换为Font对象的方法
- python3 ftplib_ftplib — FTP protocol client
- Ubuntu下apt-get方式Git的安装、配置和更新
- mysql表还原初始状态_workbench 怎么恢复初始设置
- 主构造器和附属构造器
- 拟合三维点平面matlab程序
- c语言mooc第五周作业,中国大学MOOC 浙江大学《程序设计入门——C语言》第5周:循环控制 测验与作业...
- 海康rtsp抓包分析
- java的常量池的大小,Java 常量池注意点
- 超市扫码器应该怎么使用
- 反激变换器的变压器设计
- 谷歌浏览器启动页被篡改为hao.7654.com的解决办法
- 计算机切换用户界面键,电脑如何切换屏幕_电脑怎么切换另一个界面快捷键
- 七自由度冗余机械臂运动学逆解与工作空间分析MATLAB实现
- 运维之DNS服务器Bind9配置解析和基础示例及附带命令
- 关于stm32的VCP技术原理
- 十二、阿里云 maven 配置