c++的输入和输出流

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

ios是抽象基类,由它派生出istream类和ostream类,两个类名中第1个字母i和o分别代表输入(input)和输出(output)。

istream类支持输入操作,ostream类支持输出操作, iostream类支持输入输出操作。iostream类是istream类和ostream类通过多重继承而派生的类。其继承层次见上图表示。

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

I/O类库中还有其他一些类,但是对于一般用户来说,以上这些已能满足需要了。

与iostream类库有关的头文件 

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

  • iostream  包含了对输入输出流进行操作所需的基本信息。
  • fstream  用于用户管理的文件的I/O操作。
  • strstream  用于字符串流I/O。
  • stdiostream  用于混合使用C和C + +的I/O机制时,例如想将C程序转变为C++程序。
  • iomanip  在使用格式化I/O时应包含此头文件。

在iostream头文件中定义的流对象

在 iostream 头文件中定义的类有 ios,istream,ostream,iostream,istream _withassign, ostream_withassign,iostream_withassign 等。

在iostream头文件中不仅定义了有关的类,还定义了4种流对象,


对象


含义


对应设备


对应的类


c语言中相应的标准文件


cin


标准输入流


键盘


istream_withassign


stdin


cout


标准输出流


屏幕


ostream_withassign


stdout


cerr


标准错误流


屏幕


ostream_withassign


stderr


clog


标准错误流


屏幕


ostream_withassign


stderr

 

在iostream头文件中定义以上4个流对象用以下的形式(以cout为例):
    ostream cout ( stdout);
在定义cout为ostream流类对象时,把标准输出设备stdout作为参数,这样它就与标准输出设备(显示器)联系起来,如果有
    cout <<3;
就会在显示器的屏幕上输出3。

人们在输入输出时有一些特殊的要求,如在输出实数时规定字段宽度,只保留两位小数,数据向左或向右对齐等。C++提供了在输入输出流中使用的控制符(有的书中称为操纵符)

用流对象的成员函数控制输出格式

除了可以用控制符来控制输出格式外,还可以通过调用流对象cout中用于控制输出格式的成员函数来控制输出格式。用于控制输出格式的常用的成员函数如下:

流成员函数setf和控制符setiosflags括号中的参数表示格式状态,它是通过格式标志来指定的。格式标志在类ios中被定义为枚举值。因此在引用这些格式标志时要在前面加上类名ios和域运算符“::”。格式标志见表13.5。

时间: 2024-11-02 12:11:28

c++的输入和输出流的相关文章

java socket处理--修改输入、输出流

近期要做一个流媒体播放器,支持rtsp播放过程中,要记录客户端请求的信息(解析rtsp 请求信息,获取想要的参数).这时用到了对socket  输入.输出流拦截.处理的操作. 为了提高系统性能,引入的多线程操作,详见代码. 一.程序入口,启动多线程: import java.net.ServerSocket;import java.net.Socket; public class SocketProxy {    /**     * @param args     */    public st

【ThinkingInC++】2、输入和输出流

/** *特征:输入和输出流 *时间:2014年8月8日07:37:35 *作者:cutter_point */ #include<iostream> using namespace std; int main() { cout<<"a number in decimal:"<<dec<<15<<endl; //十进制输出 cout<<"in octal:"<<oct<<

Java笔记(7)-输入、输出流

所有的合适都是两个人的相互迁就和改变,没有天生合适的两个人,两个人朝着相同的方向努力,就是最好的爱情. 输入.输出流 什么是"流".直观地讲,流就像水一样,不存在大小问题,也避免了完整性问题.非流的数据传输,比如你下载一张图片,需要整幅图片下载完之后才能使用,而流则不同,就像水,你取一杯也可以用,取一桶也可以用.所以说,流是一种数据传输的模式. 输入流和输出流,差别在于出和入,是相对于"使用程序"这个参照物而言的.如果数据的流向是程序至设备,我们称为输出流,反之我们

C语言的输入、输出流

1. 标准输入输出 标准输入.输出主要由缓冲区和操作方法两部分组.缓冲区实际上可以看做内存中的字符串数组,而操作方法主要是指printf.scanf.puts.gets,getcha.putcahr等操作缓冲区的方法.在C++以及Java等面向对象的编程语言中,将缓冲区以及操作缓冲区的方法封装成一类对象,这类对象就称为流. 缓冲区最大的特点主要体现在数据的一次性,即数据被printf.scanf从缓冲区中取出后就被使用了,或者说消耗了.可以把缓冲区比喻成管道,缓冲区中的数据比喻成水流,print

java 21-11 数据输入、输出流和内存操作流

IO数据流: 可以读写基本数据类型的数据 数据输入流:DataInputStream DataInputStream(InputStream in)   数据输出流:DataOutputStream  DataOutputStream(OutputStream out) 本来想自己写例子,后来看到博友写的全面..果断转载! java io系列15之 DataOutputStream(数据输出流)的认知.源码和示例 java io系列14之 DataInputStream(数据输入流)的认知.源码

java--字节数组输入、输出流

在java网络编程中,字节数组很重要,它可以传输任何资料(文本,音频,视频,图片等),因此掌握字节数组和其它数据类型的相互转化尤为重要. 示例代码: package com.lky.util; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.ObjectInputStream; import java.io.O

Android(java)学习笔记166:Java中输入和输出流概念

 程序在内存中运行,文件在磁盘上,把文件从磁盘上读入内存中来,当然是输入流了,   反之,把内存中的数据写到磁盘上的文件里面去就是输出.通常都是这样的,用了过滤流的情况复杂一些,则另当别论.

JAVA 的输入与输出流当中,什么时候该使用字符流?什么时候该使用字节流?

1. InputStream 和OutputStream,两个是为字节流设计的,主要用来处理字节或二进制对象, 2. Reader和 Writer.两个是为字符流(一个字符占两个字节)设计的,主要用来处理字符或字符串. 字符流处理的单元为2个字节的Unicode字符,分别操作字符.字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组.所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好!如果是音频文件.图片.歌曲,就用字

java输入,输出流如何无需finally关闭资源

例子:往一个文件内写东西 以前的写法,总是在流处理的最后都需要finally关闭资源,这样多了就会觉得很麻烦 private static void oldtest(String filePath) throws FileNotFoundException { OutputStream out = new FileOutputStream(filePath); try { out.write((filePath+"我就是测试下用Java写点东西进来").getBytes()); }ca