https://www.jb51.cc/csharp/1192447.html
编程之家收集整理的这篇文章主要介绍了c++文件怎么进行读取和写入操作,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
c++文件进行读取和写入操作的方法:1、使用“>>”和“<<”运算符;2、使用“istream::read()”和“ostream::write()”方法;3、使用“istream::get()”和“ostream::put()”成员方法。
本教程操作环境:windows7系统、C++17版本、Dell G3电脑。
fstream 或者 ifstream 类负责实现对文件的读取,它们内部都对 >>
输出流运算符做了重载;同样,fstream 和 ofstream 类负责实现对文件的写入,它们的内部也都对 <<
输出流运算符做了重载。
所以,当 fstream 或者 ifstream 类对象打开文件(通常以 ios::in 作为打开模式)之后,就可以直接借助 >> 输入流运算符,读取文件中存储的字符(或字符串);当 fstream 或者 ofstream 类对象打开文件(通常以 ios::out 作为打开模式)后,可以直接借助 << 输出流运算符向文件中写入字符(或字符串)。
执行此程序之前,必须在和该程序源文件同目录中手动创建一个 in.txt 文件,假设其内部存储的字符串为:
建立之后,执行程序,其执行结果为:
同时在 in.txt 文件同目录下,会生成一个 out.txt 文件,其内部存储的字符和 in.txt 文件完全一样,读者可自行打开文件查看。
通过分析程序的执行结果不难理解,对于 in.txt 文件中的 "10 20 30 40 50" 字符串,srcFile 对象会依次将 "10"、"20"、"30"、"40"、"50" 读取出来,将它们解析成 int 类型的整数 10、20、30、40、50 并赋值给 x,同时完成和 sum 的加和操作。
同样,对于每次从 in.txt 文件读取并解析出的整形 x,destFile 对象都会原封不动地将其再解析成对应的字符串(如整数 10 解析成字符串 "10"),然后和 " " 空格符一起写入 out.txt 文件。
**方法2:C++ read()和write()读写二进制文件**
ofstream 和 fstream 的 write() 成员方法实际上继承自 ostream 类,其功能是将内存中 buffer 指向的 count 个字节的内容写入文件,基本格式如下:
其中,buffer 用于指定要写入文件的二进制数据的起始位置;count 用于指定写入字节的个数。
也就是说,该方法可以被 ostream 类的 cout 对象调用,常用于向屏幕上输出字符串。同时,它还可以被 ofstream 或者 fstream 对象调用,用于将指定个数的二进制数据写入文件。
同时,该方法会返回一个作用于该函数的引用形式的对象。举个例子,obj.write() 方法的返回值就是对 obj 对象的引用。