zoukankan      html  css  js  c++  java
  • 程序设计第五次作业——计算器(调用文件输入输出)

    程序设计第五次作业——计算器(调用文件输入输出)

    Github 链接:传送门

    本次作业要求

    参考资料1

    参考资料2

    文件的输入输出

    <1>实例化ifstream和ofstream,并将输入文件名读入

    if(strcmp(argv[1],"-f") == 0)
    {
        string test_file=argv[2];    //输入文件名 
        string result_file=argv[3];  //输出文件名
    }
    
    

    <2>调用 string::c_str() 成员函数
    <3>使用getline(iosin,get_input,' '),将test.txt文件中的四则运算表达式传入,其中“ ”为每一个表达式的结束标志
    <4>之后调用之前写好的表达式的处理函数
    <5>将算出来的值输出在results.txt上

    主要的代码

    void Print::FileOutput(string test_file , string result_file)
    {
    	ifstream iosin;     //读操作(输入)的文件类 
    	ofstream iosout;    //写操作(输出)的文件类 
    		    
    	//打开文件 
        iosin.open(test_file.c_str(),ios::in);  
    	iosout.open(result_file.c_str(),ios::out);
    			 
    	/*我们必须调用 string::c_str() 成员函数,
    	因为 fstream 对象只接受常量字符串作为文件名。
          当你将文件名作为参数传递时,构造函数试图打开指定的文件。
    	接着,我们用重载的 !操作符来检查文件的状态。*/	
    			
    	while(!iosin.eof())
    	{
    		string get_input = "";
    		Dispose *p = new Dispose();
    		Calculation *cal = new Calculation();
    				
    		getline(iosin,get_input,'
    '); //以换行符作为分界点。
    				
    		double results;
    		results = cal->CaculateExpression(p->ToStringQueue(get_input));
    				 
    		iosout << results << endl;   //将计算出来的值记录到文件中去
    		
    	    delete p;   
    		p=NULL;
    		delete cal;
    		cal=NULL;
    		
    	}
    	
    	//关闭文件 
    	iosin.close();
    	iosout.close();
    }
    

    运行结果

    cmd运行结果:

    在txt文件运行结果

    计算流程框图:

  • 相关阅读:
    C#projectPropertyGrid 显示结构(展开逗号分隔)
    WPF 数据绑定
    WPF Binding值转换器ValueConverter使用简介(二)-IMultiValueConverter
    WPF Binding值转换器ValueConverter使用简介(一)
    Sql语句知识大全
    C#端口、IP正则
    C#基础知识整理
    C#UDP异步通信
    D365 添加导入按钮继承到系统导出
    D365 FO 创建DataEntity找不到natural key
  • 原文地址:https://www.cnblogs.com/fzuljz/p/5479979.html
Copyright © 2011-2022 走看看