c++头文件include_c++万能头文件

c++头文件include_c++万能头文件12月1日——学习C++输入输出类库,这篇就够了参考资料:C++ 参考手册 – cppreference.com一、输入输出类库是什么?C++中为不同类型数据的标准输入和输出定义了专门的类,这些类构成了输入输出类库,也称为流类库、I/O类库。新增输入输出类库的原因是:由于C语言没有运算符重载机制

12月1日——学习C++输入输出类库,这篇就够了   参考资料:C++ 参考手册 – cppreference.com   一、输入输出类库是什么?   C++中为不同类型数据的标准输入和输出定义了专门的类,这些类构成了输入输出类库,也称为流类库、I/O类库。   新增输入输出类库的原因是:由于C语言没有运算符重载机制,导致stdio库的不可扩充性,让我们无法让printf()和scanf()支持类型的自动识别和对自定义类对象的扩充识别。   C++系统中的输入输出类,都定义在以下4个头文件中,各头文件包含的类如下:   (1)iostreamios,抽象基类istream,通用输入流和其他输入流的基类ostream,通用输出流和其他输出流的基类iostream,通用输入输出流和其他输入输出流的基类   (2)fstreamifstream,输入文件流类ofstream,输出文件流类fstream,输入输出文件流类   (3)strstreamistrstream,输入字符串(字符数组)流类ostrstream,输出字符串(字符数组)流类strstream,输入输出字符串(字符数组)流类   (4)sstreamistringstream,输入字符串(string对象)流类ostringstream,输出字符串(string对象)流类stringstream,输入输出字符串(string对象)流类   各类的继承关系如下:
c++头文件include_c++万能头文件
c++头文件include_c++万能头文件   二、输入输出类库怎么用?   (一)通用流   1.iostream类定义了以下三个标准流对象:   cin,表示标准输入,从键盘读入数据。cout,表示标准输出,向屏幕输出或者写数据。cerr,表示标准错误,向屏幕写数据。   输出主要由重载的左移操作符(<<)来完成,输入主要由重载的右移操作符(>>)完成。   2.格式控制(对于后面介绍的文件流和字符串流同样适用)   I/O流常用格式控制的函数有   其中,setiosflags有以下选项   实例如下:   setf有两种格式:   (1)fmtflags setf(fmtflags);   (2)fmtflags setf(fmtflags,fmtfield);
c++头文件include_c++万能头文件
c++头文件include_c++万能头文件   第一个参数和以前一样,也是一个包含了所需设置的fmtflags值。第二参数指出要清楚第一个参数中的哪个位。   3.状态标志(对于后面介绍的文件流和字符串流同样适用)   I/O流操作结果的状态信息被包含在io_state类型的对象中。io_state是一个枚举类型(就像open_mode一样),以下便是它包含的值。goodbit 无错误Eofbit 已到达文件尾failbit 非致命的输入/输出错误,可挽回badbit 致命的输入/输出错误,无法挽回   有两种方法可以获得输入/输出的状态信息。一种方法是通过调用rdstate()函数,它将返回当前状态的错误标记。例如,假如没有任何错误,则rdstate()会返回goodbit。   另一种方法则是使用下面任何一个函数来检测相应的输入/输出状态:   例子如下:   如果错误发生,那么流状态既被标记为错误,你必须用clear函数清除这些错误状态,以使你的程序能正确适当地继续运行。也可以用setstate函数设置错误标志位为指定状态,例如fs.setstate(ios::failbit);表示设置错误标志位为非致命性错误状态。   (二)文件流   由于文件设备并不像显示器屏幕与键盘那样是标准默认设备,它在fstream.h头文件中是没有像cout那样预先定义的全局对象,所以我们必须自己定义一个该类的对象。   1.打开文件   在fstream类中,有一个成员函数open(),就是用来打开文件的,其原型是:   参数:   打开文件的方式在类ios(是所有流式I/O类的基类)中定义,常用的值如下:   可以用“或”把以上属性连接起来,如   打开文件的属性取值是:   可以用“或”或者“+”把以上属性连接起来,如3或1|2就是以只读和隐含属性打开文件。   例如,以二进制输入方式打开文件 c:\config.sys   如果open函数只有文件名一个参数,则是以读/写普通文件打开,即:   另外,fstream 还有和 open( )一样的构造函数,对于上例,在定义时自动打开文件:   特别提出的是,另外有两个类可以输入或者输出方式打开文件   2.关闭文件   fstream提供了成员函数close()来完成此操作。   3.读写文件   (1)文本文件   使用另外一种打开方式。   (2)二进制文件   put()函数向流写入一个字符,其原型是ofstream &put(char ch),如file1.put(‘c’);   get()函数比较灵活,有3种重载形式:和put()对应: 功能是从流中读取一个字符,结果保存在引用ch中,如果到文件尾,返回空字符。如 。 这种形式是从流中返回一个字符,如果到达文件尾,返回EOF,如 这种形式把字符读入由 buf 指向的数组,直到读入了 num 个字符或遇到了由 delim 指定的字符,如果没使用 delim 这个参数,将使用缺省值换行符’\n’。例如:   要读写二进制数据块,使用成员函数read()和write()成员函数。   4.其他函数   (1)文件定位分为读位置和写位置的定位,对应的成员函数是seekg()和seekp()。   seek_dir 表示移动的基准位置,是一个有以下值的枚举:   (2)getline(buffer, max)读取整行数据,直到遇到换行符,每行结尾的\n并不读入。   (3)删除文件用remove(“文件名”)   (4)文件改名用rename(“旧文件名”,”新文件名”);   (5)is_open():判断是否成功打开了文件。   (三)字符串流   1.istrstream、ostrstream和strstream用于C风格的字符串的输入输出   (1)istrstream   (2)ostrstream   2.istringstream、ostringstream和stringstream用于C风格和C++风格的字符串的输入输出   (1)istringstream   (2)ostringstream   (3)stringstream   多次转换的时候,必须调用stringstream的成员函数clear(),否则有乱码。   可以像cout那样设置格式。

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/80878.html

(0)
上一篇 2024年 8月 2日 上午9:32
下一篇 2024年 8月 2日 上午9:39

相关推荐

关注微信