c++ - int main(int argc, char **argv)

标签 c++

<分区>

我是 C++ 的初学者,我习惯使用 int main() 进行编码,现在我正在使用:

int main(int argc, char **argv)

而且我也不知道这行代码到底是什么意思。所以,我在互联网上查找了一些答案,并找到了这段代码:

std::cout << "Have " << argc << " arguments:" << std::endl;
    for (int i = 0; i < argc; ++i) {
        std::cout << argv[i] << std::endl;
    }

这显示了我的论点。

我运行应用程序,控制台显示:

Have 1 arguments:

C:\Users\user\Documents\C++ Projects\Test\bin\Debug\Test.exe

然后它关闭应用程序,因为在这个循环之后我有一个基于 argc 值的 if else 语句。

因此,如果 argc 不同于 3,它会运行 exit(0)

我的问题是:

为什么我的参数只是位于调试路径上的我自己的应用程序?

我怎样才能得到多个参数?

最佳答案

argc 是用于运行程序的参数数量

argvchar* 参数的数组

argv[0] 是可执行文件的名称(在您的情况下,它是 Test.exe)

argv[1] 是您传入的第一个参数(如果您传入任何参数)。

因此,如果您将程序作为 Test.exe a b 运行,则 argc 将为 3,而 argv 的内容将为:

argv[0]Test.exe

argv[1]一个

argv[2]b

关于c++ - int main(int argc, char **argv),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25333364/

相关文章:

c++ - 在 C/C++ 中读取和解析行;将标记放入数组或 vector 或类似结构中

c++ - GoF对Prototype模式的实现

c++ - RegisterDeviceNotification 返回 NULL 但仍收到通知

c++ - 每次模拟正态分布都是一样的(C++)

用于 3D 监视器显示的 C++ 库

c++ - 无窗口 OpenGL

c++ - 通过 getline() w/C++ 从 .dat 检索文件

c++ - 写入数组元素 [i][0][1] 也会覆盖 [i][1][0],反之亦然

c++ - Qt:在新行上分离输入和显示

c++ - 仅使用库 iostream 和 cstring 在字符串中查找单词