我有一個程序從終端讀取輸入,而cin
的流在多個類中用於各級解析。我可以將ifstream重定向到cin嗎?
而不是使用cin
從終端獲取數據,我想讀取具有我需要解析的信息的文件,但我不想修改所有我的頭文件和.cpp文件以接受ifstream&
參數。
爲了保持現有的代碼,我試圖簡單地將ifstream
重定向到cin,但不知道如何。
所以假設我有主要以下幾點:
ifstream inFile("myfile.txt", ifstream::io);
string line;
while(getline(inFile, line))
{
char firstChar;
inFile >> firstChar;
cout << firstChar;
inFile.ios::rdbuf(cin.rdbuf());
Continue myFile;
}
在我continue.cpp
我只是在做:
Continue()
{
string line;
cin >> line;
cout << "---remaining line: " << line << "\n";
}
但是它只是打印從主的第一個字符。
「但我不」我想修改所有的頭文件和.cpp文件來接受ifstream&參數。「那真不幸。 –
@AmiTavory啊好吧,所以沒有辦法繞過它? –
是的。看看dup和dup2函數(前綴爲'_' for Windows)。我只是尋找一個例子。 –