`
rothmada
  • 浏览: 85086 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

C++之标准IO库

    博客分类:
  • C++
 
阅读更多

C++之标准IO库

 

一、概述

C++的输入/输出(input/output)由标准库提供。

多种IO标准库工具:

  • istream,提供输入操作
  • ostream,提供输出操作
  • cin:读入标准输入的istream对象
  • cout:写到标准输出的ostream对象
  • cerr:输出标准错误的ostream对象。常用语程序错误信息
  • >>,用于从istream对象中读入输入
  • <<,用于把输出写到ostream对象中
  • getline,功能是从istream对象读取一个单词,然后写入string对象中

二、面向对象的标准库


 

1.国际字符的支持

流类(stream class)读写都是由char类型组成的流。

标准库还定义了一组相关的类型,支持wchar_t类型。每个类都加上“w”前缀以此区分。

控制窗口读写:wostream,wistream,wiostream

文件输入输出:wofstream,wifstream,wfstream

String输入输出:wostirngstream,wistringstream,wstringstream

对象:wcin,wcout,wcerr

 

2.IO对象不可复制或赋值

流对象不能存储在vector或其他容器中。

形参或返回类型也不能为流类型,如果需要,则必须传递或返回指向该对象的指针或引用

if(cin)
	//ok to use cin, it is in a valid state
while(cin >> word)
	//ok:read operation successful…

流的状态由bad,fail,eof,good操作揭示。

bad:系统级的故障

fail:可恢复的错误

eof:遇到文件结束符,通常还会设置fail

clear:重设为有效条件

setstate:打开某个指定的条件,用于表示某个问题的发

 

1.条件状态的访问

rdstate成员函数返回一个iostate类型的值,该值对于于流当前的整个条件状态

istream::iostate old_state = cin.rdstate();

2.多种状态的处理

 

is.setstate(ifstream::badbit | ifstream::failbit);

三、输出缓冲区的管理

1.输出缓冲区的刷新

cout << “hi” << flush;  //flushes the buffer;add no data
cout << “hi” << ends;  //inserts a null,then flushes the buffer
cout << “hi” << endl;  //inserts a newline,then flushes the buffer

2.unitbuf操作符

如果需要刷新所有输出,最好使用unitbuf操作符。

 

cout << unitbuf << “first” << “second” << nonunitbuf; 

3.将输入和输出绑定一起

任何读输入流的尝试都将首先刷新其输出流关联的缓冲区

 

四、文件的输入和输出 

fstream头文件定义了三种支持文件IO的类型:

ifstream,istream派生而来,提供读文件的功能

ostream,ostream派生而来,提供写文件的功能

fstream,iostream派生而来,提供读写同一个文件的功能

 

fstream还定义了两个自己的新操作—openclose

 

1.文件流对象的使用

 

//假设ifile和ofile是存储希望读写的string对象
ifstream infile(ifile.c_str());
ofstream outfile(ofile.c_str());
//捆绑要读写的文件对象
ifile.open(“in”);
otfile.open(“out”); 

IO标准库是使用C风格字符串的 

1)检查文件打开是否成功

if (infile)这种方式来检查

2)将文件流与新文件重新捆绑

 

ifstream infile(“in”);
infile.close();
infile.open(“next”);

3)清除文件流的状态

如果需要重用文件流读写多个文件,必须在读另外一个文件之前调用clear清楚流的状态

 

2.文件模式

所有文件都可以使用atebinary模式打开。

ofstream对象指向out模式等效于同时指定了outtrunc模式。

1)对同一个文件作输入和输出运算

同时打开输入和输出模式:

 

fstream inOut (“copyOut”, fstream::in | fstream::out);

 

2)模式是文件的属性而不是流的属性

只要调用open函数,就要设置文件模式,其模式的设置可以是显示的也可以是隐式的

3)打开模式的有效组合

所有组合可以添加ate模式。 


3.一个打开并检查输入文件的程序

 

Ifstream open_file(ifstream &in, const string &file)
{
              in.close();
              in.clear();
              in.open(file.c_str());
              return in;
} 

 

五、字符串流 

1.stringstream对象的使用

 

string line,word;
while (getline(cin,line)){
              istringstream stream(line);
              while(stream >> word){
      //TO DO
}
}

2.stringstream提供的转换和/或格式化

常见用法是,需要在多种数据类型之间实现自动格式化使用该类类型

 

 

 

 

 

 

 

  • 大小: 108.5 KB
  • 大小: 42.5 KB
  • 大小: 10.3 KB
  • 大小: 9.5 KB
0
4
分享到:
评论

相关推荐

    XMind总结C++标准IO库

    C++标准IO库,通过C++标准输入输出流对控制窗口,磁盘文件字符串流进行控制。内容也包含条件状态,文件模式等内容。

    C++标准IO文档

    ### C++标准IO知识点详解 #### 一、C++标准IO概述 C++标准库提供了丰富的输入输出(IO)功能,这些功能通过一系列面向对象的API实现,支持对各种设备如控制台、文件等的读写操作。这些API还包括一些特殊类型,允许...

    《C++ Primer》学习笔记(25)IO库

    本文档基于《C++ Primer》中的IO库章节,重点介绍C++标准库中与输入输出相关的概念和技术。主要内容包括不同IO操作之间一致性的实现方式、基本的IO对象管理以及文件输入输出的基本操作。 #### 二、IO操作的一致性 ...

    C++的IO流库.pdf

    ### C++ IO流库知识点详解 #### 一、C++为何需要自己的IO系统?...通过这样的设计,C++的IO流库不仅能够很好地支持标准的输入输出操作,还能方便地扩展以支持各种自定义类型的数据处理,满足复杂应用的需求。

    标准IO库与QT流的使用.7z

    在编程领域,标准IO库(Standard Input/Output Library)是C++编程语言中不可或缺的一部分,它为处理输入和输出提供了一套完整的接口。QT库,另一方面,是一个强大的跨平台应用程序开发框架,尤其在图形用户界面...

    c++ 标准程序库 源代码

    C++标准程序库是C++编程语言不可或缺的一部分,它提供了大量的类和函数,极大地扩展了C++的基础功能。源代码的获取和理解对于深入学习C++、优化代码以及进行库的自定义修改至关重要。这份“c++ 标准程序库 源代码”...

    C++程序设计与数据结构基础:第8章 C++ IO流标准库.ppt

    C++程序设计与数据结构基础:第8章 C++ IO流标准库 本章内容主要讲解了C++程序设计中的IO流标准库,涵盖了C++ I/O流概述、控制台与文件的输入与输出、外部存储介质、内存变量写文件(输出)读文件(输入)等方面的...

    C++IO流库

    在C++编程中,I/O流库是处理输入和输出操作的核心部分,它使得程序员能够高效、方便地与外部设备(如键盘、显示器、磁盘文件等)进行数据交互。本章将详细介绍C++的I/O流库及其相关概念。 1. **屏幕输出** - **...

    C++ 标准程序库(清晰非影印版)

    再者,C++标准库提供了IO流系统,使输入输出操作变得简洁而直观。iostream库包含了cin、cout等对象,使得从键盘读取数据和向屏幕输出结果变得简单易行。同时,fstream库支持文件的读写操作,方便数据持久化。 此外...

    C++标准库代码

    C++标准库是C++编程语言的核心组成部分,它提供了一系列预先定义好的类和函数,用于高效、便捷地实现各种常见的编程任务。这个压缩包包含了C++标准库的源代码,对于学习者来说,是一个深入了解C++内部机制和编程实践...

    C++的IO流库_Vc_源码

    C++的IO流库是C++标准库的重要组成部分,它为程序提供了处理输入和输出的强大工具。在C++中,IO流库(I/O Stream Library)使得数据的读写变得非常方便,支持从键盘、文件、网络等不同来源进行数据交互。这个教程...

    c/c++标准函数库查询中文版

    C++标准库则更加丰富,除了包含C库的所有内容外,还增加了STL(Standard Template Library)组件,如容器(如vector、list、set、map)、迭代器、算法(如sort、find、transform)以及IO流库(iostream)。...

    socket io协议c++

    在使用Boost库时,可能是因为它提供了许多C++标准库中没有的功能,如异步编程、智能指针和线程管理等。在Socket.IO的实现中,Boost库可以帮助我们处理并发问题,特别是在处理多个连接时,可以使用Boost.Asio库进行...

    c++写的io操作操作

    C++提供了多种方式进行I/O操作,主要包括标准库中的`iostream`、`fstream`和`cstdio`等。下面将详细介绍这些I/O库以及如何进行基本的读写操作。 1. **iostream 库** `iostream`库是C++中最常用的I/O库,包含了`...

    c++标准IO实例示范

    C++标准IO库是C++编程中用于处理输入输出的重要组成部分,主要由`iostream`、`fstream`等头文件提供支持。在这个实例中,我们将详细探讨C++如何使用标准IO库进行不同类型的文件操作。 首先,`iostream`头文件包含了...

    C++ IO流 学习课件

    C++的IO流是C++标准库中的一个重要组成部分,它为程序与外部设备(如键盘、屏幕、文件等)之间的数据交换提供了强大的支持。IO流是C++对C语言I/O系统的一种扩展和改进,引入了面向对象的概念,使得输入输出操作更加...

    c与c++标准类库及函数.zip_C C++ 函数库_C++_C/C++标准库 chm_C标准库

    此外,C++标准库还有iostream库,用于IO操作,如cin和cout;异常处理(exception)、智能指针(shared_ptr, unique_ptr)等,这些都是C++语言的重要组成部分。 C++标准库中的`&lt;iostream&gt;`头文件提供了基本的输入...

    C++biaozhunku.rar_C++标准库_c++ 标准库_library

    C++标准库是C++编程语言的核心组成部分,它提供了一系列预先定义好的函数、类和对象,使得程序员可以高效地编写程序而无需从零开始构建所有基础功能。C++标准库通常被称为C++ Standard Template Library (STL),但...

    C++标准程式库.rar

    这个压缩包“C++标准程式库.rar”包含了关于C++标准程式库的重要信息,主要以“C++标准程式库.pdf”的形式呈现。以下是基于这个主题的详细知识点解释: 1. **C++标准程式库概述**:C++标准程式库(Standard ...

    IO读写操作c++IO读写操作c++

    在C++中,标准库提供了一套强大的IO流库,主要包括`iostream`,`fstream`,`sstream`等头文件。这里我们主要关注`fstream`,它支持文件的读写操作。在二进制模式下进行IO操作,可以高效地处理非文本数据,例如图像、...

Global site tag (gtag.js) - Google Analytics