cin/cout重定向到文件,避免鍵盤的重複輸入

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章