文件作为命令行参数

File as Command Line arguments

本文关键字:参数 命令行 文件      更新时间:2023-10-16

我是C++新手,我正在使用Visual Studio学习。我想制作一个小程序,从命令行读取文本并打开文本。我知道我的程序必须像这样开始:

  int main (int argc, char *argv[] ){
    ifstream File( argv[1] )

但是我对如何从Visual Studio命令提示符运行它感到非常困惑。我知道有很多这样的问题,但我仍然没有找到我想要的东西。我读到您必须转到属性、调试并更改命令行参数,但我到底需要在那里输入什么?我应该在VS命令提示符中键入什么。

谢谢!

从菜单中查找:项目>属性。或者从"解决方案资源管理器"树中右键单击项目并选择"属性"。

现在,在打开的对话框左窗格中选择:配置属性->调试

然后在右窗格网格中找到标题为:命令参数的行

用输入文件名填充它(我认为你最好把它作为一个完整路径放在那里,如果路径中有一个空格使用双倍配额。 像这样:

无空间:

filepathwithoutspace.txt

或带空格:

"file path with spaces.txt"

祝你好运。

对于初学者来说,你的代码不应该像这样开始:之前将argv[1]传递给std::ifstream::ifstream,您应该验证是否存在参数,并输出错误消息否则。 实际上,您最终可能会将空指针传递给ifstream 的构造函数,这将(通常(在程序崩溃。

至于如何运行它:你把可执行文件放在哪里? 如果你位于Visual Studio命令提示符窗口中,并且调用cl,则默认情况下,可执行文件应位于本地目录。 只需输入 .name ,其中 name 是名称您的程序。 如果您实际上已从IDE,然后在命令窗口中,应使用 cd 进行导航生成可执行文件的位置(您可以找到从您的属性(,并按上述方式调用它;或者你可以简单地完全指定路径: c:UsersmewhereeverIPutTheThingname .

如果要调试(使用调试器(,则需要指定:1(可执行文件的名称(但默认值应该很好(,2(要传递它的参数(您希望在其中看到的内容( argv[1] - 如果引号中有空格,请不要忘记引号it(,以及 3( 可执行文件应运行的目录。 这第二个和第三个在某种程度上是相互依存的:你可以,对于例如,仅指定 2 中的文件名,以及文件位于 3 中,或者您可以指定文件名在 2 中,忘记 3。 或者结合使用二:在实践中,我倾向于从根源做所有事情目录,所以我会指定一个相对于这个的路径目录,然后是从我的项目文件到此根目录的路径在3. (我们设置事物的方式,这是......,但是我想你会发现它更短一些。