c++ - 我可以要求用户重新输入命令行参数吗

标签 c++ c gcc command-line-arguments

main(int argc, char *argv[])
{
if(argc != 3) {
printf("Invalid number of arguments\n");
exit(1);
}}

如果计数与所需的参数数量不匹配,我将直接退出程序。

如果参数数量与计数不匹配,是否有办法要求用户重新输入命令行参数?我的意思是不退出程序..

最佳答案

尝试:

#include <iostream>
#include <string>
std::string askUser(std::string const& question)
{   
     std::cout << question << "\n";

     std::string result;
     std::getline(std::cin, result);

     return result;
}   
int main(int argc, char* argv[])
{   
    std::string  arg1;
    std::string  arg2;
    std::string  arg3;

    arg1   = (argc > 1) ? std::string(argv[1]) : askUser("Please Enter Arg1");
    arg2   = (argc > 2) ? std::string(argv[2]) : askUser("Please Enter Arg2");
    arg3   = (argc > 3) ? std::string(argv[3]) : askUser("Please Enter Arg3");
 }   

关于c++ - 我可以要求用户重新输入命令行参数吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14151845/

相关文章:

c - 为什么这个动态字符串创建会在固定数字后抛出 exc_bad_access 错误?

c - 当我尝试在 Eclipse CDT 中运行程序时,我的可执行文件停止运行

C++ bool to int cast 和 GCC 4.8.1

gcc - 以非编译器特定的方式更改 Fortran 中的目录

c++ - 链接器不包括未引用的数组

c++ - 类定义中的分号

溢出时的 C++ 数组绑定(bind)异常 - "cout"并且没有 "cout"

c++ - 用于 Win32 Windows 应用程序的简单 C++ 框架?

c++ - 数组结构

c - 段错误信号处理程序 signint