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判断文件是否被成功打开