【问题标题】:Is it possible to pass input arguments to an executable in the command line是否可以在命令行中将输入参数传递给可执行文件
【发布时间】:2020-01-17 11:37:37
【问题描述】:

假设我有这个 c++ 代码,我编译成一个可执行的 out.exe

int main(){   
   int a = 0;  
   cin>>a;

   if (a)    
      cout<<"done";  

   return 0;  
}

通常我会使用命令行输入它的名字来执行它,然后它会等待我的输入。

但是,我希望它在我调用可执行文件的同一行中传递输入,如下所示:

out.exe 1

1 是输入,因此程序不会等待我的输入并直接输出:

done

【问题讨论】:

  • 您只能输入一个字符数组。
  • 您要查找的内容称为“输入流重定向”或“输入流管道”。我不确定它在 windows 下是如何工作的,应该类似于 echo 1 | out.exe
  • 还有一个选项可以使用命令行参数。如果您将main 签名更新为int main(int argc, char** argv)argv 将是一个包含您在out.exe 之后提供的所有参数的 c 字符串数组,argc 将是他们的计数

标签: c++ cmd command-line


【解决方案1】:

你可以使用int main(int argc, char **argv)命令行参数**argv,参数计数器argc查看What does int argc, char *argv[] mean?

参数被读取为字符串,但您可以轻松地将它们转换为您需要的类型,在本例中为 intHow can I convert a std::string to int?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-26
    • 2013-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-29
    • 2011-02-21
    相关资源
    最近更新 更多