我想做类似的事情,但一直遇到错误,关于istream的复制赋值运算符是受保护的。我希望有一种方法可以将输入从cin切换到我程序中某个未知点的文件输入。
then()
答案 0 :(得分:3)
您无法复制流"。流不是容器;这是一个数据流。
真正试图做的是重新绑定引用。好吧,你也不能这样做(根本就没有它的语法,因此你的编译器认为你正在尝试复制 - 分配流本身),所以请改用指针:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
istream* in = &cin;
ifstream f{"file.txt"};
in = &f;
// Now you can read input from the file.
string s;
while(*in >> s) {
cout << s << endl;
}
}
只要f
指向in
,就确保String myFile = "filename.txt";
PrintStream out = new PrintStream(new FileOutputStream(myFile)));
out.print(text);
能够存活。
答案 1 :(得分:1)