#include <iostream>
#include "Sales_data.h"
#include <fstream>
using namespace std;
int main(int argc,char *argv[])
{
if (argc!=3)
{
cerr<<"请给出文件名"<<endl;
return -1;
}
ifstream input(argv[1]);
if (!input)
{
cerr<<"无法打开输入文件"<<endl;
return -1;
}
ofstream output(argv[2]);
if (!output)
{
cerr<<"无法打开输出文件"<<endl;
}
// ifstream input("Salesin.text");
// ofstream output("Salesout.text");
Sales_data total;
if (read(input,total))
{
Sales_data trans;
while(read(input,trans))
{
if (total.isbn()==trans.isbn())
{
total.combine(trans);
}
else
{
print(output,total)<<endl;
total=trans;
}
}
print(output,total)<<endl;
}
else
{
cerr<<"NO data?!"<<endl;
}
return 0;
}
注:头文件#include "Sales_data.h"见另一篇文章
main()中两个参数从命令行获取到的,本文的程序名ex08_io.exe 两个参数分别是Salesin.text和Salesout.text
argc=3,表示出了程序名外还有两个参数,此参数自动判断,无需输入
argv[0]指向输入的程序路径及名称,如若和exe在同一路径下可忽略。
argv[1]指向主函数的第一个参数。
argv[2]指向主函数的第二个参数。
1. 首先运行程序生成Debug程序下的
2. 在dos下运行cmd 用d: 进入d盘
3 用cd D:\C++primer\ex08_io\Debug 进入ex08_io.exe目录下
4.输入要运行的主程序名和参数ex08_io.exe Salesin.text Salesout.text回车运行即可
5 流程的整个目录如下