0

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

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

    ifstream File( argv[1] )

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

谢谢!

4

2 回答 2

3

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

现在,在打开的对话框左窗格中选择:Configuration Properties->Debugging

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

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

没有空格:

filepathwithoutspace.txt

或带空格:

"file path with spaces.txt"

祝你好运。

于 2013-10-09T16:09:44.333 回答
2

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

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

如果你想调试(使用调试器),你需要指定:1)可执行文件的名称(但默认应该是好的),2)传递它的参数(你想在里面看到什么—— argv[1]不要如果其中有空格,请忘记引号),以及 3)可执行文件应运行的目录。第二个和第三个有点相互依赖:例如,您可以在 2 中仅指定文件名,在 3 中指定文件所在的路径,或者您可以在 2 中指定文件名的完整路径,而忽略 3。或者结合使用两者:在实践中,我倾向于从项目的根目录开始做所有事情,所以我会指定一个相对于这个目录的路径,然后在 3 中指定从我的项目文件到这个根目录的路径。 (我们设置的方式,这是..\..\..,但我想你会发现它有点短。)

于 2013-10-09T15:52:32.597 回答