C++之标准设备IO操作流.pdfVIP

  • 1
  • 0
  • 约2.33千字
  • 约 3页
  • 2019-07-14 发布于江苏
  • 举报
  每种语言系统都会提供 IO操作的类库,用于对预定义类型数据 进行输入输出的操作。C++也是如此,它是以字节流的形式实现的。在 输入操作时,字节流从输入设备(键盘、磁盘)流向内存;在输出操作 时,字节流由内存流向输出设备(显示器、打印机);字节流可以是 ASCII 字符、二进制数据、图形图像、音频视频等信息。文件和字符串 也可以看成是有序的字节流,又称为文件流和字符串流。C++的编译 系统自带一个面向对象的输入输出软件包,即IO 流类库。库中各种 类的声明都被包含在相应的头文件中,比如之前经常用到的头文件 iostream,其中使用的cin\cout 都是常用的流对象,用于对标准设 备的 IO操作。还有用于用户文件管理 IO操作的 fstream 头文件(磁 盘文件的操作),用于字符串流的IO操作的 strstream 头文件(内存 字符流的操作),以及iomanip 头文件用于输入输出的格式控制。   在 IO 流类库中包含以下几个常用的流类: ios 是抽象基类,类istream 和 ostream 是单继承于ios,而类 iostream 是通过多继承于类istream 和类 ostream 。ios 除了派生出 istream 和 ostream 还派生出fstreambase 文件流类和 strstreambase 串流类,而该4 类又派生出 ifstream 、ofstream 、istrstream 、ostrstream,以及fstream 和 strstream 。   在 C++中除了上述提到过的预定义流对象cout 和 cin 外,还有 非缓冲标准出错流对象cerr 和缓冲标准出错流对象 clog,它们都是 来自于ostream 类的对象,用于输出错信息。cerr 和 clog 之间的不 同之处在于cerr 是不经过缓冲区直接向显示器输出有关信息,而 clog 则是先把信息放在缓冲区,缓冲区满后或遇上endl 时向显示器 输出。下面介绍几个预定义对象 cout 和 cin 的几个成员函数: cout.put(字符变量或单字符);//注:参数可以是字符的ASCII 码或 整型表达式 cin.get(字符型变量);//注:从输入流中读取一字符(包括空白字 符) cin.getline(字符数组,字符个数,终止标志符); 或 cin.getline(字符指针,字符个数,终止标志符);//注:从输入流中 读取 n-1 个字符,赋值给字符数组或字符指针所指的字符数组,最 后插入一个字符串结束标志\n。如果在读取n-1 个字符之前遇到指 定的终止符,则提前结束读取,最后插入一个字符串结束标志\n。 cin.ignore(n,终止符);//注:跳过输入流中n 个字符(默认为 1), 或遇到指定终止符(默认为EOF)时提前结束。 综合上述成员函数举例: #includeiostream int main() { std::coutcout.put:std::endl; std::cout.put(X); std::cout.put(\n); std::cout.put(88); std::cout.put(\n); std::cout******************************std::endl; std::coutcin.get:std::endl; char ch; while(std::cin.get(ch)) { if(ch==\n) { std::coutstd::endl; break; } std::cout.put(ch); } std::cout*******************************std::endl; std::coutcout.getline:std::endl; char str[10]; std::cin.getline(str,10,t); std::coutstrstd::endl; std::cout*******************************std::endl; std::coutcout.ignore:std::endl; std::cin.ignore(5,t); std::cinstr; std::coutstrstd::endl; return 0; } 结果: 对于最后一个预定义对象cin 成员函数 ignore,在实际

文档评论(0)

1亿VIP精品文档

相关文档