命令行参数未正确传递,argc 始终返回 1,而 argc 在 Visual Studio C++ 上返回空指针

问题描述 投票:0回答:2

我最近正在为一个班级做一个项目,在传递命令行参数时遇到很多问题。我决定用我在 geeksforgeeks 网上找到的一个非常简单的代码进行测试,看看我是否可以让任何类型的命令行东西工作,但它仍然无法工作。它不会打印任何 argv 值,当我调试它时,它说 argc 是 1,尽管我输入了 4 个命令行参数。我几个小时以来一直试图在网上寻找这个问题的答案,但不知道发生了什么,尤其是在使用这个非常简单的代码时。我在下面附上了我正在测试的代码。它只打印出“您已输入 1 个参数:”我对编码相对较新,但很困惑。

#include <iostream>
using namespace std;

int main(int argc, char** argv)
{
    cout << "You have entered " << argc
        << " arguments:" << "\n";

    for (int i = 0; i < argc; ++i)
        cout << argv[i] << "\n";

    return 0;
}
c++ visual-studio command-line-arguments argv argc
2个回答
0
投票

我在 VS 2022 中使用简单的 C++ 控制台应用程序也遇到同样的问题。

int main(int argc, char **argv)

...

argc 带有正确数量的参数,但它们都指向 argv[0]

.

即使我添加说... 1 2 3 4 5 作为参数,计数也是正确的,但 argv[x] 都指向 exe 的名称。


0
投票

我遇到了同样的问题 - argc 总是 1。我尝试了“调试”->“我的项目名称”“调试属性”(在底部)->“调试”->“命令参数”,并在那里设置我的参数,而不是“项目”->“属性”->“等等”。

这对我有用。我正在使用 VS2022 MFC 和 Win32(旧的 x86 程序)。希望这对某人有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.