C++标准输入/输出

原创 2018年04月17日 19:48:40

以前所用到的输入和输出,都是以终端为对象的,即从键盘输入数据,运行结果输出到显示器屏幕上。从操作系统的角度看,每一个与主机相连的输入输出设备都被看作一个文件。程序的输入指的是从输入文件将数据传送给程序,程序的输出指的是从程序将数据传送给输出文件。C++的输入与输出包括以下3方面的内容:

   1、对系统指定的标准设备的输入和输出。简称标准I/O。(设备)
   2、以外存磁盘(或光盘)文件为对象进行输入和输出。简称文件I/0。(文件)
   3、对内存中指定的空间进行输入和输出。简称串I/O。(内存)
C++流:信息从外部设备(如键盘和磁盘)向计算机内部(即内存)输入和从内存向外部输出设备(如显示器和磁盘)输出的过程。
C++不仅定义有现成的I/O类库供用户使用,而且还为用户进行标准I/O操作定义了四个类对象,它们分别是cin、cout、cerr和clog。

cin 标准输入流——其标准输入设备是键盘

cout 标准输出流——其标准输出设备是显示器

cerr 标准错误流(不带缓冲区)——它是一种输出流,由于不带缓冲区,直接输出到显示器

clog 标准错误流(带缓冲区)——它是一种输出流,由于带缓冲区,先把要输出的内容放到缓冲区,直到缓冲区满或遇到换行                                  endl才输出到显示器

1.iostream类库中有关的类
  C++编译系统提供了用于输人输出的iostream类库。iostream这个单词是由3个部分组成的,即i-o-stream,意为输入输出流。在iostream类库中包含许多用于输入输出的类。

  ios是抽象基类,由它派生出istream类和ostream类,两个类名中第1个字母i和。分 别代表输入(mput)和输出(output)。istream类支持输入操作,ostream类支持输出操作, iostream类支持输入输出操作。iostream类是从istream类和ostream类通过多重继承而派生的类。

   C++对文件的输人输出需要用ifstream和ofstream类,两个类名中第1个字母i和o分别代表输入和输出,第2个字母f代表文件(file)。ifstream支持对文件的输入操作,ofstream支持对文件的输出操作。类ifstream继承了类istream,类ofstream继承了类ostream,类fstream继承了类iostream。

由抽象基类ios直接派生出4个派生类,即istream,ostream,fstreambase和strstreambase。其中fstreambase是文件流类基类,由它再派生出ifstream,ofstream和fstream。strstreambase是字符串流类基类,由它再派生出lstrstream,ostrsCeam和swsWeam类。
   I/0类库中还有其他一些类,但是对于一般用户来说,以上这些已能满足需要了。如果想深入了解类库的内容和使用,可参阅所用的C++系统的类库手册。在本章将陆续介绍有关的类。

2、与iostream类库有关的头文件
   iostream类库中不同的类的声明被放在不同的头文件中,用户在自己的程序中用 #include命令包含了有关的头文件就相当于在本程序中声明了所需要用到的类。可以换一种说法:头文件是程序与类库的接口,iostream类库的接口分别由不同的头文件来实现。常用的有

  1. iostream 包含了对(标准)输入输出流进行操作所需的基本信息。
  2. fstream 用于用户管理的文件的I/0操作。
  3. sbsbeam 用于字符串流I/0。
  4. stdiostream 用于混合使用C和C++的I/0机制时,例如想将C程序转变为C++程序。
  5. iomamp 在使用格式化I/0时应包含此头文件。


3、在iostream头文件中定义的流对象
  在iostream头文件中定义的类有:ios,istream,ostream,iostream,istream_withassign,stream_withassign,iostream_withassign等。
   iostream包含了对输入输出流进行操作所需的基本信息。因此大多数C++程序都包括iostream。在iostream头文件中不仅定义了有关的类,还定义了4种流对象,

   cin是istream的派生类istream_withassign的对象,它是从标准输入设备(键盘)输入到内存的数据流,称为cin流或标准输入流。cout是ostream的派生类ostream_withassign的对象,它是从内存输入到标准输出设备(显示器)的数据流,称为cout流或标准输出流。cerr和clog作用相似,均为向输出设备(显示器)输出出错信息。因此用键盘输入时用cin流,向显示器输出时用cout流。向显示器输出出错信息时用cerr和clog流。
4.在iostream头文件中重载运算符

   “<<”和“>>”本来在C++中是被定义为左位移运算符和右位移运算符的,由于在iostream头文件中对它们进行了重载,使它们能用作标准类型数据的输入和输出运算符。所以,在用它们的程序中必须用#include命令把ostream包含到程序中。

[cpp] view plain #include<iostream>  

在istream和ostream类(这两个类都是在头文件iostream中声明的)中分别有一组成员函数对位移运算符“<<”和“>>”进行重载,以便能用它输入或输出各种标准数据类型的数据。


获得标准输入,输出,出错句柄

HANDLE WINAPI GetStdHandle(   _In_ DWORD nStdHandle ); STD_OUTPUT_HANDLE STD_INPUT_HANDLE S...
  • u014660247
  • u014660247
  • 2016-10-11 09:38:12
  • 363

标准输入和标准输出的read_write

标准输入和标准输出的read_write
  • lile777
  • lile777
  • 2017-03-20 15:59:46
  • 661

C/C++ 标准输入输出的坑

 最近公司项目需要分析日志,我拿到的日志经过了一次处理,以Json格式存储,日志量每小时大约1G,行数大约60万,此为背景。 其实对于这类问题,通常的解法是写个脚本去跑。对于我来说,主业是C/...
  • yunxiaopiao
  • yunxiaopiao
  • 2015-05-26 17:38:10
  • 997

c++用标准输入输出流测试数据

在测试很多数据时候往往要重新输入很多数据,如果用标准输入输出流测试数据往往会非常的方便。在这里写一个小的demo方便理解记忆。#include #include using namespace s...
  • sunlanchang
  • sunlanchang
  • 2017-04-17 09:45:33
  • 454

C++从标准输入读取一行字符串

代码如下,使用了头 和  getline函数在头中定义。 #include #include using namespace std; int main() { string str; ...
  • simplelovecs
  • simplelovecs
  • 2016-04-07 12:47:05
  • 2420

Linux基础之标准输入和输出

1.Linux提供了三种输入/输出通道给程序 标准输入(STDIN) - 缺省为键盘  标准输出(STDOUT) - 默认为终端窗口  标准错误(STDERR) - 默认为终端窗口 2.标准输...
  • u011018979
  • u011018979
  • 2014-03-19 14:50:18
  • 1257

C++ 标准输入 cin 使用

cin 总结:  //    1.  cin >> xxx  并且 cin会忽略 空格  回车 tab 这些 // //          a.需要看xxx是什么数据类型,如果是int  当输入字符时...
  • ym19860303
  • ym19860303
  • 2013-07-12 01:44:26
  • 3350

C++标准输入输出重定向

//ProcessStdInOut.cpp //用法: // argv[1]是子进程的包含路径的完整可执行文件名 // argv[2]是代替子程序StdIn的输入文件 // argv...
  • zww0815
  • zww0815
  • 2012-09-06 23:16:08
  • 5255

linux程序设计——把管道用作标准输入和输出(第十三章)

13.5.1    管道关闭后的读操作 接下来先研究一下打开的文件描述符,此前一直采取的是让读进程读取一些数据然后直接退出的方式,并假设linux会把清理文件当作是在进程结束时应该做的工作的一部分. ...
  • yiranant
  • yiranant
  • 2015-07-12 23:11:00
  • 1841

C++之标准输入输出

由于在公司,无法上传图片,往后补上。 关于C++的标准输入输出,其实就相当于C语言的scanf和printf,只不过C++用cin和cout这样称为流的机制。 #include //使用时需包含头文...
  • morixinguan
  • morixinguan
  • 2016-02-16 12:42:34
  • 910
收藏助手
不良信息举报
您举报文章:C++标准输入/输出
举报原因:
原因补充:

(最多只允许输入30个字)