C++与C的文件读入写入


C语言的方法非常简单,就是通过freopen("文件地址","所做的操作,r,w等等",stdin/stdout);

freopen("input.txt","r",stdin); 

freopen("output.txt","w",stdout);

使用后记得fclose()

 

而C++中主要有两种操作

一:文件的重定向

rdbuf的方式,以输入为例

ifstreamfin("input.txt");  // 已有输入文件

streambuf *cinbackup;   

cinbackup= cin.rdbuf(fin.rdbuf());  //用 rdbuf() 重新定向

//其内部实现就是将cin原来的输入即从键盘输入保存到cinbackup中,然后再用fin该文档告知cin从这里输入

cin.rdbuf(cinbackup);  // 输入完成后,将原来保存的cinbackup返还给rdbuf 恢复键盘输入

二:

如果仅仅是从文件输入输出可以使用fin、fout

不过这样是不改变cout和cin的。

 

注意,在打开文件时应当有一个if判断文件是否被成功打开

你可能感兴趣的:(C++,重定向,C++)