打开一个通过命令参数执行某些操作的函数
Opening a function that does something through command arguments
假设我想通过命令(使用argc和argv(打开程序。你得到你的程序名称,打开程序。它为您提供.exe。然后,一旦你的程序.exe运行,向它添加另一个参数,如(program.exe open(,它应该在你的程序中打开一些东西。
if (argc >= 5){
if (int(argv[1]) == 1){
function1();
function2();
function3();
}
}
基本上在这种情况下,如果用户要输入程序.exe 1,(在这种情况下为1是开口(,它应该执行以下功能。为什么这在逻辑上是不正确的?(因为没有显示任何内容(
你需要的是这个:
if (argc >= 2){ // the argc is count of supplied argument
// including executable name
if ( (argv[1][0]-'0') == 1){
//argv[1] will be "1"
//so take first character using argv[1][0]--> gives '1'-->49
//substract ASCII value of 0 i.e. 48
//Note: - This will only work for 0-9 as supplied argument
function1();
function2();
function3();
}
}
将 argv[1] 转换为 int 不起作用。你可以使用 atoi((:
if (argc >= 2){
if (atoi(argv[1]) == 1){
function1();
function2();
function3();
}
}
因为int(argv[1])
不会将字符串"1"
转换为int
1
。 试试这个:
if (argv[1][0] == '1') {
相关文章:
- 当函数模板参数是具有默认参数的类模板时,函数模板参数的推导如何执行
- 如何将带有参数的愚蠢函数添加到愚蠢的执行器中?
- 如何将成员函数作为参数传递并在派生对象上执行方法列表
- 是否可以在命令行中将输入参数传递给可执行文件
- 是否可以将具有不同签名的 lambda 存储在 std::vector 中并在函数中执行它们(使用各自的参数)?
- 如何将带有参数的方法传递给线程以执行?
- 运算符 new 的执行顺序和构造函数的参数
- 使用参数包自动执行dynamic_cast检查
- 执行参数未提供预期结果
- 如何查看完整的CMD执行命令,包括参数和标志?
- 如何检查参数包是否具有执行顺序中的确切类型
- std::bind() 参数列表中函子的执行顺序(可能与函数参数的求值顺序无关)
- 在执行new期间是否可以在构造函数中传递不同的参数?
- 如何捕获函数参数并存储函数指针以供以后在 C++11 中执行?
- 提供变量作为 MATLAB 系统命令的输入参数,以便C++可执行文件
- 如何执行参数化构造函数的调用?
- C++:我可以在模板参数包中强制执行至少1个agment吗
- 如果没有带有函数签名的 rvalue 参数,是否会执行 C++ 11 中的移动语义?
- 执行模板参数包指向的所有方法
- C ShellexeCuteex不会通过未从该EXE产生输出来执行参数