c++ - 如何将 char *argv[] 从 Main 函数指向表

标签 c++ console-application program-entry-point

我会尽力解释我想做什么。我有程序(不起作用),它被编写为从 Windows 中的 CMD 控制台调用。我正在使用主函数的参数

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

但在这种情况下,我无法使用调试器来查找我做错了什么...... 我能以某种方式将 char *argv[] 参数连接到代码中创建的表吗? 示例:

int main(int argc, char *argv[])
{
char tablica[] = { 'K','2','+','1','-','3','*','(','3','+','2',')','*','2' };
tablica = **argv; //// IDK HOW TO CONNECT THESE TWO 

最佳答案

这是你如何伪造参数传递并用你的数组替换

#include <stdio.h>

int main(int argc, char* argv[]){
     char *tablica[] = { argv[0],"K","2","+","1","-","3","*","(","3","+","2",")","*","2" };
     int i;
     argv=tablica;
     argc=sizeof(tablica)/sizeof(tablica[0]);

     for (i=0;i<argc;i++)
     {
         printf("%s\n",argv[i]);
     }
     return 0;
}

结果:

your_executable
K
2
+
1
-
3
*
(
3
+
2
)
*
2

注意:为了符合argc,argv:

  • 我已将字符数组更改为 char * 数组(单引号 => 双引号)。这似乎合乎逻辑,因为如果没有它,您就无法在参数中传递例如数字 > 9!
  • 我也覆盖了argc(从你的数组自动计算)
  • 我已经在你的数组中插入了程序名,否则它会转移参数解析。

关于c++ - 如何将 char *argv[] 从 Main 函数指向表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40348223/

相关文章:

c++ - Py ILM Base 无法在 Windows 上编译

c++ - 为什么 std::move( arg ) 改变 arg 参数?

Delphi - 从 SW_HIDE 状态显示控制台应用程序

c# - 如何允许控制台应用程序迁移?

reactjs - react 主入口点

c++ - 如何在多个 QT 图形 View 小部件之间同步移动

C++ 字符串比较和替换优化

c# - 为什么在不应该抛出该异常时抛出该异常?

c# - 如何制作具有多个项目和不同输出的安装程序包?

c - int main (int ac, char **av)