C++程序不会打印命令行参数

KG6*_*ZVP 0 c++ command-line-arguments

我决定回到编程(特别是C++),为此我开始研究命令行解析器.最终目标是将其变成一个简单的类,我可以在以后的某个项目中导入它.

这个测试程序只是列出它收到的参数数量,然后打印出来,每行一个,然后退出.

这是我的代码:

#include <iostream>
#include <cstdlib>

using namespace std;

int main(int argc, char* argv[]){
    cout << "Es gibt " << argc << " Argumente." << endl;
    for(int i=0; i << argc; i++){
        cout << "Argument " << i << ": " << argv[i] << endl;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

以下是终端中发生的情况:

[user@dx4320 cmdline-parser]$ g++ cmdline-parser-test.cpp -o parsetest
[user@dx4320 cmdline-parser]$ ./parsetest eins zwei
Es gibt 3 Argumente.
[user@dx4320 cmdline-parser]$ 
Run Code Online (Sandbox Code Playgroud)

为什么不按照预期打印参数?它清楚地认识到这些论点,那么问题是什么呢?我相信我错过了一些明显的东西.

Dan*_*rey 7

你有错误的操作员,你需要:

for(int i=0; i < argc; i++){
   // only one ^ is correct here
Run Code Online (Sandbox Code Playgroud)

否则你将拥有运算符<<(也称为"左移"),因此,表达式i << argc(i最初的位置0)总是计算到false,并且循环的主体永远不会被执行.