传递到命令行的参数未打印,并且程序无限期循环

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

我正在尝试实现一个简单的命令行程序,该程序需要三个参数并将其打印在Linux终端上

例如:

>c++ exec.cpp

>./a 32 + 32

应该打印出这样的内容

32

+

32

但是程序无限循环

我已经对argc进行了检查像这样

if(argc!=3) {
cout << "Exit" << endl;
return -9999;
}

如果自变量计数为3

这些代码行应执行

else {
for(int i=0;i<argc;i++){
cout << argv[i] << endl;
}
}

但是正如我在程序无限循环之前所解释的>

编辑:由于要求我在此处发布整个代码,因此它是

#include <iostream>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <string>

using namespace std;

int main(int argc,char* argv[]) {
 if(argc!=3) {
    cout << "Exit" << endl;
    return -9999;
    }
else {
    for(int i=0;i<argc;i++){
    cout << argv[i] << endl;
    }
    }
}

我正在尝试实现一个简单的命令行程序,该程序需要三个参数并将其打印在linux终端上,例如:> c ++ exec.cpp> ./ a 32 + 32应该打印出类似...的内容。]] >

现在有了代码,实际上对我来说确实不错。在每种情况下,似乎都没有一种方法可以产生无限循环。如果在主函数的末尾添加return(0);,会发生什么?

[Main总是必须返回某些内容,并且如果程序设计器没有添加,编译器通常会自行抱怨或自行执行。

哦,您是否为错误消息尝试了cerr变体而不是cout?因为之后从主要位置返回,与我提到的崩溃完全相同。

您的代码正在运行...我做了一些修改(例如argc!= 4,i <= argc等)我在Linux系统上使用gcc(g ++)对其进行了编译:

g++ exec.cpp -o a.out
./a.out

输出:

Exit

我跑步时:

./a.out 4 + 3

输出:

4
+
3
c++ linux unix operating-system
2个回答
0
投票

现在有了代码,实际上对我来说确实不错。在每种情况下,似乎都没有一种方法可以产生无限循环。如果在主函数的末尾添加return(0);,会发生什么?


0
投票

您的代码正在运行...我做了一些修改(例如argc!= 4,i <= argc等)我在Linux系统上使用gcc(g ++)对其进行了编译:

g++ exec.cpp -o a.out
./a.out
© www.soinside.com 2019 - 2024. All rights reserved.