zoukankan      html  css  js  c++  java
  • 面向对象程序设计 作业四

    GitHub

    Click

    参考资料

    https://www.cnblogs.com/Allen-rg/p/6762437.html
    https://blog.csdn.net/sxhelijian/article/details/46428701
    两篇博客中包含了基础的基于C++的命令行参数的使用及原理解释,对于命令行参数这种技术型的小知识,因使用频率较少容易忘记,所以将个人认为有价值的博客附上,便于以后学习使用。

    文件读写、文件路径小结

    C++文件打开模式标记:

    • ios::in 以只读方式打开文件
    • ios::out 以只写方式打开文件
    • ios::app 以追加(写)方式打开文件
    • ios::_Nocreate 不建立文件,所以文件不存在时打开失败
    • ios::_Noreplace 不覆盖文件,所以打开文件时如果文件存在失败
    • ios::binary 以二进制方式打开文件
      一般常用前三种,可根据需要进行选择。
      C++的文件读写是比较方便的,有其完善的一套模板,同样也有多种读写方法,这里写出我最习惯用的文件读写模板:
    #include<fstream>//头文件
    
    int main()
    {
        ifstream infile("./input.txt");
        ofstream outfile1("./output1.txt");
        ofstream outfile2("./output2.txt");
        ... ...//根据需要输出文件个数增减
        
        infile>>... ...;//通过infile读入文件内容
    
        infile.close();    
    
        outfile1>>... ...;
        outfile2>>... ...;//通过outfile写入文件
    
        outfile1.close();
        outfile2.close();
    
        return 0;
    }
    

    代码功能:读取input.txt中的内容,若目录中存在output.txt,则将输出写入output.txt中;若目录中不存在output.txt,则建立output.txt并将输出写入其中。

    命令行参数的学习

    1)最简单的命令行参数

    为程序添加命令行参数,使程序能够接收命令行输入的参数有如下两种格式:
    D:>Elevators.exe D:input.txt
    D:>Elevators.exe D:input.txt D:output1.txt D:output2.txt D:output3.txt
    Elevators.exe是程序编译得到的可执行文件;input.txt是输入文件。在第一种格式中,程序会在输入文件input.txt的目录下创建三个输出文件,文件名分别为output1.txt、output2.txt和output3.txt并存放输出。
    在第二种格式中,程序接受更多的命令行参数,从头至尾指定了输入文件的路径和三个输出文件的路径。
    解决方法:保持程序基本功能不改变。使程序满足这两种功能,只需要判断接收的命令行参数个数,即argc的值。若为2,则执行第一种功能;为4,则执行第二种功能。添加代码如下:

    if (argc == 2)
    	{
    		ifstream infile(argv[1]);
    		ofstream outfile1("./output1.txt");
    		ofstream outfile2("./output2.txt");
    		ofstream outfile3("./output3.txt");
    	}
    	else
    	{
    		ifstream infile(argv[1]);
    		ofstream outfile1(argv[2]);
    		ofstream outfile2(argv[3]);
    		ofstream outfile3(argv[4]);
    	}//文件的关闭在读写完之后进行
    

    2)使用cmd运行

    • 输入要到达的盘如“F:”,回车
    • 输入“cd(空格)文件所在路径”,回车
      即可到达文件所在空间,从而使用文件。

      经过测试,程序可以实现以上两种功能。

    3)遇到的问题

    设计错误处理逻辑时,添加了判断参数格式与判断文件个数的功能,但是编译会报错,使用命令行时会出现

    经过一番搜索还是无法解决,还在思考中。

  • 相关阅读:
    uniGUI试用笔记(九)uniGUI执行程序部署有3种形式1
    CxGrid导出Excel时清除颜色的设置
    delphi 安卓程序如何读取外部配置文件
    cxgrid动态显示行号
    为Delphi程序增加UAC功能(管理员身份运行exe)
    delphi debug release区别是什么?
    启动程序的同时传参给接收程序(XE8+WIN764)
    iOS Development和iOS Distribution有什么区别
    4张图看懂delphi 10生成ipa和在iPhone虚拟器上调试(教程)
    使用Xcode 7 beta免费真机调试iOS应用程序
  • 原文地址:https://www.cnblogs.com/azeLibertas/p/9093186.html
Copyright © 2011-2022 走看看