使用IDE工具: visual studio 2017
使用的Sales_item.h 文件:https://github.com/Mooophy/Cpp-Primer/blob/master/include/Sales_item.h
《Primer c++》 19頁中,避免重復無聊的數據輸入,使用文件的重定向,大體意思就是從文本中讀取需要的數據,而不是窗口中一行一行的輸入
內容樣例給出: $addItem <infile> outfile
其中 addItem 是程序編譯后的可執行文件,尖括號中是數據的源文件,outfile是要輸出的文件,需要注意的是這里的輸入和輸出文件需要和exe文件在同一目錄下
1、在window命令行窗口中使用指令完成
在開始菜單->安裝路徑下啟動 [ x64 Native Tools Command Prompt for VS 2017]
切換到 可執行程序的路徑下,執行【 vshello <input.txt> output.txt 】
其中vshello 是項目debug 文件夾中的 可執行文件,input.txt 和 output.txt 也一同放在該文件夾下。
input.txt 中放有兩行記錄:
x-78 3 20.00
x-78 2 21
當命令執行完成后,可在output.txt 中看到輸出結果。
但是這種方式完全是在命令行中,我們想斷點調試完全不行,所以想着可以試着從代碼中讀取文件,然后進行計算
2、在代碼中讀取數據文件
所使用的涉及到第八章中的IO庫 fstream 的使用,
#include <iostream> using std::cin; using std::cout; using std::endl; #include <string> using std::string; #include "Sales_item.h" #include <fstream> int main() { std::ifstream in("input.txt"); std::streambuf *cinbackup; cinbackup = cin.rdbuf(in.rdbuf()); Sales_item item1, item2; cin >> item1 >> item2; cout << item1 + item2 << endl; return 0; }
需要注意的是文件input.txt 放在的位置是項目下,而非前面debug文件夾中。