【问题标题】:pass command line argument/fstream into function将命令行参数/fstream 传递给函数
【发布时间】:2015-04-17 13:58:38
【问题描述】:

我使用文本文件的名称调用我的程序,该文件被放入 argv[2 & 4](有两个文件)。然后我需要这个名字来传递给一个函数。 ifstream myFile(argv[2]) 然后像void func(ifstream myFile, ifstream myOtherFile) 这样传递一个 ifstream 或者我应该像 void func(char* nameOne, char* nameTwo) 这样传递 argv[2 & 4] 本身会更好吗?如果是第二种方式,那是我传递的正确方式吗?

文件只在该函数的范围内使用,所以我可以在函数中打开和关闭它们,或者打开它们,将它们传递给函数,然后在从函数返回后关闭它们。我只是想知道哪种方式更有意义。谢谢

【问题讨论】:

    标签: c++ fstream ifstream


    【解决方案1】:

    RAII 是主题 C++ 资源管理 - 尽可能让 } 处理清理。在您的情况下,该指南建议自动持续时间 ifstream,它只存在于 func 的范围内,因为它会在销毁时关闭文件。由于ifstream 只能移动,您可以将func 称为func(ifstream(argv[2]), ifstream(argv[4]))

    【讨论】:

      猜你喜欢
      • 2012-08-13
      • 2014-07-22
      • 2013-12-23
      • 1970-01-01
      • 2015-06-09
      • 2017-10-22
      • 2019-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多