使用ifstream ofstream重定向輸入輸出 c++
阿新 • • 發佈:2019-01-03
//使用ifstream和ofstream及cin和cout的rdbuf() #include <iostream> #include <fstream> using namespace std; int main() { printf(" 使用ifstream和ofstream及cin和cout的rdbuf()來改變控制檯的標準輸入輸出\n"); //將控制檯的標準輸入輸出改成從檔案中讀取寫入 ifstream inFile("infile.txt"); ofstream outFile("outfile.txt"); //儲存原來的輸入輸出方式 streambuf類就是basic_streambuf類 streambuf *strmin_buf = cin.rdbuf(); streambuf *strmout_buf = cout.rdbuf(); printf("開始處理檔案\n....\n"); //重定向到檔案 cin.rdbuf(inFile.rdbuf()); cout.rdbuf(outFile.rdbuf()); //原程式程式碼 int n; while (cin>>n) { n *= 2; cout<<n<<endl; } inFile.close(); outFile.close(); //回到控制檯的標準輸入輸出 cin.rdbuf(strmin_buf); cout.rdbuf(strmout_buf); cout<<"檔案已經處理完畢 輸入0表示結束:"<<endl; do{ cin>>n; }while (n != 0); return 0; }