收藏 分享(赏)

C++中Txt文件读取和写入.txt

上传人:11xg27ws 文档编号:4219363 上传时间:2018-12-16 格式:TXT 页数:6 大小:10.30KB
下载 相关 举报
C++中Txt文件读取和写入.txt_第1页
第1页 / 共6页
C++中Txt文件读取和写入.txt_第2页
第2页 / 共6页
C++中Txt文件读取和写入.txt_第3页
第3页 / 共6页
C++中Txt文件读取和写入.txt_第4页
第4页 / 共6页
C++中Txt文件读取和写入.txt_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、C+中Txt文件读取和写入一、ASCII 输出为了使用下面的方法, 你必须包含头文件(译者注:在标准C+中,已经使用取代,所有的C+标准头文件都是无后缀的。)。这是 的一个扩展集, 提供有缓冲的文件输入输出操作. 事实上, 已经被包含了, 所以你不必包含所有这两个文件, 如果你想显式包含他们,那随便你。我们从文件操作类的设计开始, 我会讲解如何进行ASCII I/O操作。如果你猜是“fstream,“ 恭喜你答对了! 但这篇文章介绍的方法,我们分别使用“ifstream“?和 “ofstream“ 来作输入输出。如果你用过标准控制台流“cin“?和 “cout,“ 那现在的事情对你来说很简单。

2、 我们现在开始讲输出部分,首先声明一个类对象。ofstream fout; 这就可以了,不过你要打开一个文件的话, 必须像这样调用ofstream:open()。fout.open(“output.txt“); 你 可以 文件 作为 来打开一个文件.ofstream fout(“output.txt“); 这是我们使用的方法, 为这样 和打开一个文件 来 简单. 便说一 , 如果你要打开的文件不 在, 会为你 一个, 所以不用 文件 的 . 现在就输出文件, 来和“cout“的操作很像。对不了解控制台输出“cout“的 , 这 有个 。int num = 150;char name = “Jo

3、hn Doe“;fout “ 了, 为你下来要用 他们。、ASCII 输入输入和“cin“ 流很像. 和的输出流很像, 但你要 件事情。在我们开始 的 , 先一个文fi:12 GameDev 15.45 L This is really awesome! 为了打开这个文件,你必须 一个in-stream对象,?像这样。ifstream fin(“input.txt“); 现在读入行. 你 用“ (提取) 操作 . 使用方法是一样的. 这个代 .int number;float real;char letter, word8;fin number; fin word; fin real; fin

4、 letter; 可以 这行读取文件的代 写为 简单的一行。fin number word real letter; 是如何 作的 ? 文件的个 后, “ 操作 会 读取, 一个操作 . 为我们读取的一行都被 行 分开(是 ),“ 操作 这一行的读入 。这就是这个代 作的 。但是,可别 了文件的 后一行。This is really awesome! 如果你想 行读入一个char , 我们 法用“?操作 , 为个单 的 会中 文件的读取。为了:char sentence101; fin sentence; 我们想包含 个 , “This is really awesome!“ 但是 为 , 现

5、在 包含了“This“. 很明显, 有读取 行的方法, 就是getline()。这就是我们要 的。fin.getline(sentence, 100); 这是 . 一个 显是用来受的char . 个 是在 行 , 允许受的 大元素 . 现在我们 了想要的结果:“This is really awesome!”。你应该已经知道如何读取和写入ASCII文件了。但我们不 罢休, 为进制文件在等着我们。三、进制 输入输出进制文件会 一, 但是很简单的。 首先你要注意我们不使用 入和提取操作 (译者注: 操作 ). 你可以这 ,但 不会用进制方式读写。你必须使用read() 和write() 方法读取和

6、写入进制文件. 一个进制文件, 下一行。ofstream fout(“file.dat“, ios:binary); 这会以进制方式打开文件, 而不是默的ASCII模式。首先从写入文件开始。 write() 有两个 。 一个是指向对象的char类型的指针, 个是对象的大小 译者注:节 。 为了说明, 。int number = 30; fout.write(char *)( 一个 写“(char *)( char letter; obj;obj.number = 15;obj.letter = M;fout.write(char *)( 这样就写入了 个结 ! 下来是输入. 输入 很简单, 为

7、read()? 的 和 write()是完全一样的, 使用方法 相同。ifstream fin(“file.dat“, ios:binary); fin.read(char *)( 我不多解释用法, 为 和write()是完全相同的。进制文件 ASCII文件简单, 但有个缺是无法用文fifl fl 。 着, 我解释一下ifstream 和ofstream 对象的其他一些方法作为结束.、 多方法我已经解释了ASCII文件和进制文件, 这 是一些 有提及的底层方法。检查文件你已经学会了open() 和close() 方法, 不过这 有其 你可 用 的方法。方法good() 返 一个布尔值,表示文件

8、打开是否。类似的,bad() 返 一个布尔值表示文件打开是否错误。 如果出错,就不要 进一步的操作了。后一个检查的方法是fail(), 和bad()有相似, 但 那 严重。读文件方法get() 返 一个 。方法ignore(int,char) 跳过一 的某个 , 但你必须传给 两个 。 一个是要跳过的 。 个是一个 , 当 的就会 。 ,fin.ignore(100, /n); 会跳过100个 , 者不足100的,跳过所有 的 ,包括 /n。方法peek() 返 文件中的下一个 , 但并不实际读取 。所以如果你用peek() 查 下一个 , 用get() 在peek() 后读取,会 同一个 ,

9、 后移文件计 。方法putback(char) 输入 , 一一个, 流中。我 有见 过 的使用,但这个 实 在。写文件有一个你可 会 注的方法.?那就是 put(char), 向输出流中写入一个 。打开文件当我们用这样的语法打开进制文件:ofstream fout(“file.dat“, ios:binary); “ios:binary“是你提供的打开选项的额外标志. 默的, 文件以ASCII方式打开, 不 在则 , 在就覆盖. 这 有些额外的标志用来改 选项。ios:app 添加 文件尾ios:ate 文件标志放在末尾而非 始。ios:trunc 默. 截断并覆写文件。ios:nocreat

10、e 文件不 在 不 。ios:noreplace 文件 在则失败。文件状态我用过的唯一一个状态 是eof(), 返 是否标志已经 了文件末尾。 我主要用在循环中。 如, 这个代 断统计小写e 在文件中出现的 。ifstream fin(“file.txt“);char ch; int counter;while (!fin.eof() ch = fin.get();if (ch = e) counter+;fin.close(); 我从未用过这 有提 的其他方法。 有很多方法,但是他们很少被使用。 C+书籍 者文件流的帮助文档来了解其他的方法。结你应该已经掌握了如何使用ASCII文件和进制文件

11、。有很多方法可以帮你实现输入输出,尽管很少有 使用他们。我知道很多 不 文件I/O操作,我希望这篇文章对你有所帮助。 个 都应该知道. 文件I/O有很多显而易见的方法,? 如包含文件 . 我 喜欢用流是 为他们 简单。 祝所有读了这篇文章的 , 许以后我会为你们写些东西笔:C+文件的读取和写入#include #include #include using namespace std;int main()char buffer256;ifstream myfile (“c:a.txt“);ofstream outfile(“c:b.txt“);if(!myfile)cout 头文件读:从外部文

12、件中将 据读 中来 理对 来说,是从外部读入 据, 输入流, 输入流对象:ifsteam infile,infile就是输入流对象。这个对象当中 放 将从文件读入的 据流。 设有 为myfile.txt的文件, 有两行 据, 方法:int a,b;ifstream infile;infile.open(“myfile.txt“); /注意文件的 infileab; /两行 据可以 读出 infile.close()如果是个很大的多行 的文fi型文件可以这 读:char buf1024; / 读取出来的文件string message;ifstream infile;infile.open(“m

13、yfile.js“);if(infile.is_open() /文件打开成 ,说明 经写入过东西while(infile.good() infile.getline(buf,1204);message = buf;/这 可 对message 一些操作couti ncludei ncludeusing namespace std;/从 上读取 的 void read_save()char c80;ofstream outfile(“f1.dat“);/以输出方式打开文件if(!outfile)cerr=65outfile.put(ch);coutch;coutendl;infile.close();outfile.close();int main()read_save();creat_data();system(“pause“);return 0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > C/C++资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报