0

我有这个问题,如何使用 echo 来补充输入并告诉程序要给出多少输出。

基本上,我已经整理出了程序逻辑,即从 y 输入中随机选择 x 数的子集。我的代码在这里:

问题是,如何将主参数中的 argc 变量转发给程序执行?

上下文需要我调用:%echo ABCDEFG | 子集 2,假设随机打印 2 个字符。但是我不能这样做,数字2似乎不能在这里转发。%echo 命令的调用似乎也不起作用。任何人请帮助

int main(int argc){
RandomizedQueue<char> q;
char input;


while(cin.peek() != '\n'){
    cin >> input;
    q.enqueue(input);
}

for(int k = 0; k < argc; k++)
    cout << q.dequeue() << endl;

return 0;

}

4

1 回答 1

0

我认为 % in%echo不是您应该输入的内容,而是表示命令提示符本身。所以你输入这个:

echo A B C D E F G | ./Subset 2

假设您的程序名为 Subset 并且位于当前工作目录中。然后,Subset 将收到 argc==2 和 argv=={"./Subset", "2"}。您需要以标准方式声明 main (您缺少 argv):

int main(int argc, char* argv[])

一旦你这样做了, argv[1] 将是“2”作为一个字符串(程序的第一个参数)。您可以执行以下操作将其转换为 int:

int count = atoi(argv[1]);

您应该阅读 main 的声明,因为 argc 不是作为数字的参数,而是参数的数量。用 argc 而不是 argv 声明 main 是非常不典型的。

于 2013-04-13T12:37:46.190 回答