繁体   English   中英

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

[英]C++ program won't print 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;
}

这是终端中发生的事情:

[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]$ 

它为什么不按原样打印参数? 它清楚地认识到论点,那么问题出在哪里呢? 我确定我这里缺少明显的东西。

您有错误的运算符,您需要:

for(int i=0; i < argc; i++){
   // only one ^ is correct here

否则,您将拥有运算符<< (又名“左移”),结果,表达式i << argc (其中i最初为0 )始终计算为false并且永远不会执行循环的主体。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM