如何将char *argv[]从Main函数指向表
How to point char *argv[] from Main function to the table
我将试着解释我要做什么。我有程序(不工作),这是写从CMD控制台在窗口调用。我使用main函数
中的参数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("%sn",argv[i]);
}
return 0;
}
结果:your_executable
K
2
+
1
-
3
*
(
3
+
2
)
*
2
注释:为了与argc兼容,argv:
- 我已经将字符数组更改为
char *
数组(单引号=>双引号)。这似乎是合乎逻辑的,因为没有它,你就不能在你的参数中传递实例数> 9 ! - 我也覆盖了
argc
(从你的数组自动计算) - 我已经在数组中插入了程序名,否则它会改变参数解析。
将代码分成一个可测试的函数可以做得更好。这将允许您编写一个单元测试项目,以查看它在已知输入上的行为是否正确(正如您已经准备好的那样),或者直接从main中使用argc, argv调用它。
// your code
int your_code (int argc, char* argv[]);
// can be called from main
int main(int argc, char* argv[]){
your_code(argc, argv);
return 0;
}
// or can be tested
void unit_test() {
char * tablica[] = ...;
int arg_count = sizeof(tablica) / sizeof(tablica[0]);
your_code(arg_count, tablica);
}
请注意,您的代码当前假设每个字符都是一个新元素。这可以防止大于9的数字。如果你致力于这一点,string
可以很简单地为你做这件事。
const auto tablica = string(argv + 1, argc - 1) + "K2+1-3*(3+2)*2"s
或者如果您希望命令行参数作为后缀:
const auto tablica = "K2+1-3*(3+2)*2"s + string(argv + 1, argc - 1)
如果你需要将它转储到一个单独的列表中,你可以这样做:
copy(cbegin(tablica), cend(tablica), ostream_iterator<char>(cout, "n"))
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- "main"函数堆栈中的对象在第一个任务运行时被覆盖 (FreeRTOS)
- 为什么 'main' 函数中的局部 int 变量会自动初始化?
- 为什么在我的 main 函数中声明整数后我的整数数组中会出现错误?
- 尝试更改 main 函数内的全局变量值时出现编译错误 C++.
- 我应该在 main 函数中写什么来测试我的问题?
- 如何在 main 函数中输出两个新字符串C++?
- 有没有办法通过 main 函数访问受保护的矢量大小而无需将其转换为公共?
- 我们可以在main函数中声明嵌套类对象吗
- 为什么Main函数上的Sleep()会停止所有线程
- C++ main 函数中初始化静态变量
- 为什么VC++/MFC没有main函数?
- 如何在 main 函数的一个对象中初始化两个类的值?C++
- 在 C++ 中解析 main 函数的大量输入的正确方法是什么
- 如何编写一个 void 函数,该函数将在数组中搜索值,并通过引用将该值的位置传递回 main 函数
- 如何将矩阵参数发送到从C 中的MAIN函数
- 如何从子例程函数获取到 main 函数的返回值
- 为什么我不能在 main 函数中更改类的公共变量
- C++编译错误:多个定义"main",但项目中只有一个 main 函数
- 如何使用 x86 程序集在 c 中访问 main 函数中的变量