将命令行 argument/fstream 传递给函数
pass command line argument/fstream into function
我用一个文本文件的名称调用我的程序,该文件被放入 argv[2 & 4](有两个文件)。然后我需要这个名字来传递给一个函数。 ifstream myFile(argv[2]) 然后像 void func(ifstream myFile, ifstream myOtherFile)
一样传递 ifstream 会更好还是我应该像 void func(char* nameOne, char* nameTwo)
一样传递 argv[2 & 4] 本身?如果是第二种方式,那是我传递的正确方式吗?
这些文件只在那个函数的范围内使用,所以我可以在函数中打开和关闭它们,或者打开它们,将它们传递给函数,然后从函数返回后关闭它们。我只是想知道哪种方式更有意义。谢谢
RAII 是主题 C++ 资源管理 - 尽可能让 }
句柄清理。在您的情况下,该指南建议自动持续时间 ifstream
仅存在于 func
的范围内,因为它会在销毁时关闭文件。由于 ifstream
只是移动,您可以将 func
调用为 func(ifstream(argv[2]), ifstream(argv[4]))
。
我用一个文本文件的名称调用我的程序,该文件被放入 argv[2 & 4](有两个文件)。然后我需要这个名字来传递给一个函数。 ifstream myFile(argv[2]) 然后像 void func(ifstream myFile, ifstream myOtherFile)
一样传递 ifstream 会更好还是我应该像 void func(char* nameOne, char* nameTwo)
一样传递 argv[2 & 4] 本身?如果是第二种方式,那是我传递的正确方式吗?
这些文件只在那个函数的范围内使用,所以我可以在函数中打开和关闭它们,或者打开它们,将它们传递给函数,然后从函数返回后关闭它们。我只是想知道哪种方式更有意义。谢谢
RAII 是主题 C++ 资源管理 - 尽可能让 }
句柄清理。在您的情况下,该指南建议自动持续时间 ifstream
仅存在于 func
的范围内,因为它会在销毁时关闭文件。由于 ifstream
只是移动,您可以将 func
调用为 func(ifstream(argv[2]), ifstream(argv[4]))
。