cin/cout重定向到檔案,避免鍵盤的重複輸入
阿新 • • 發佈:2019-01-11
cin/cout重定向
- 定向到檔案以及還原回控制檯的方法
//freopen("C:\\Users\\Administrator\\Desktop\\consoleout.txt", "w", stdout); //代替標準輸出
//freopen("C:\\Users\\Administrator\\Desktop\\consolein.txt","r", stdin); //代替標準輸入
streambuf *stdcin = cin.rdbuf();//改變定向前備份標準輸入輸出
streambuf *stdcout = cout.rdbuf();
ifstream mycin("C:\\Users\\Administrator\\Desktop\\consolein.txt" );
cin.rdbuf(mycin.rdbuf());//開啟檔案後定向到檔案流,用完關閉檔案
Sales_data sd1,sd2;
double price;
cin >> sd1.bookNo >> sd1.units_sold>>price;
sd1.revenue = sd1.units_sold*price;
cin >> sd2.bookNo >> sd2.units_sold >> price;
sd2.revenue = sd2.units_sold*price;
cout << sd1.bookNo <<" "<< sd1.revenue
<<" "<< sd1.units_sold << endl;
mycin.close();//關閉檔案流
cin.rdbuf(stdcin);
cout.rdbuf(stdcout);//恢復到標準輸出
- 也可以使用作業系統提示符$來改變定向
$ addItems <infile >outfiles