Tag: 命令行参数

如何在visual studio中传递多个命令参数?

我正在使用LZMA SDK进行compession / decompression项目。 主程序包含一些我必须用来运行应用程序的参数 要从命令行运行它,我使用: ./LzmaUtil.exe e input.elf output.elf 我正在使用VS 2013,所以我已将e in.elf out.elf添加到命令参数中,我重建了项目(生成中的可执行文件)但是当我按下RUN时似乎没有任何事情发生。 请注意,我在调试文件夹中的input.elf是.exe存在于那里,而标志e用于压缩文件和output.elf是压缩文件。 主要function包括: int MY_CDECL main(int numArgs, const char *args[]) { char rs[800] = { 0 }; int res = main2(numArgs, args, rs); fputs(rs, stdout); return res; } 完整的源代码可从以下url获得: http : //www.7-zip.org/sdk.html 调试: 没有任何参数,我得到: The program ‘[5284] LzmaUtil.exe’ has exited with code […]

argv中的字符串是否可修改?

我刚刚写了一个小程序,用C语言读取命令行参数,没什么太难的。 我也在修改它们,例如将参数的第一个字符更改为大写。 我知道你不应该修改字符串文字,因为它可能导致未定义的行为,所以只是想知道*argv[]中的字符串是否是你不应该更改的文字。 int main(int argc, char *argv[])

是否可以使用Unicode“argv”?

我正在为一个使用文件作为参数的应用程序编写一个小包装器。 包装器需要是Unicode,所以我使用wchar_t作为我拥有的字符和字符串。 现在我发现自己遇到了问题,我需要在wchar_t和wchar_t字符串数组中包含程序的参数。 可能吗? 我将mainfunction定义为 int main(int argc, char *argv[]) 我应该将wchar_t用于argv吗? 非常感谢,我似乎没有找到有关如何在C中正确使用Unicode的有用信息。

如何将main的* argv 传递给函数?

我有一个程序可以接受命令行参数,我想从一个函数访问用户输入的参数。 如何将*argv[]从int main( int argc, char *argv[])传递给该函数? 我对指针的概念有点新意见, *argv[]看起来有点过于复杂,我无法自己解决这个问题。 我的想法是通过将我想要对参数做的所有工作移动到库文件来尽可能保持我的main干净。 当我设法在main之外掌握它们时,我已经知道我必须对这些论点做些什么。 我只是不知道如何让他们在那里。 我正在使用GCC。 提前致谢。

如何解释C中命令行参数中的特殊字符?

第一个问题: 假设我们编写一个简单的程序,它接受命令行参数并打印到文件中。 如果用户输入 writetofile你好!0 \ nw%orl \ t!@#y bash回复 !0:未找到事件。 如果用户不知道使用引号(”)或转义字符(’\’),我该如何处理这些东西而不是bash将其理解为命令? 第二个问题: 一旦我得到这些参数,我如何将它们解释为特殊字符而不是字符序列。 (即。\ t是标签,而不是’\”’) 也就是说,如何确保程序将其写入文件: Hello!0 w%orl !@#y 并不是 Hello!0\nw%orl\t!@#y

如何从后缀表达式中的命令行参数字符串逐字符读取? 在C编程中

如果我要这样做一个命令行参数,例如: ./program 12+42-*\ 我如何从命令行参数中读取每个字符并创建一个后缀表达式,使得12 + 42- *将计算为C中的表达式(1 + 2)*(4-2)? 一个解释,也可能是一个开始这个的伪代码将是伟大的。 你使用堆栈吗? 如果你这样做,有人可以解释如何使用/不使用伪代码吗? 谢谢! 注意12 + 42- \是一个命令行参数,所以没有空格。 这是一个赋值,这只是它的一小部分,它是通过命令行参数获取输入并使用后缀表达式

++ * argv,* argv ++,*(argv ++)和*(++ argv)之间的区别

目前我正在学习C并试图了解这些说明。 他们真的不一样吗? ++*argv *argv++ *(++argv) *(argv++) 谢谢!

C – 具有可变数量的参数和命令行参数的函数

我需要按字典顺序排序n个字符串,这些字符串是具有可变数量参数的函数的参数。 在main函数中,字符串被读作命令行参数。 这是我的代码: #include #include #include #include void sort(int n,…) { //store optional arguments (strings) to array arr va_list args; va_start(args,n); char **arr=malloc(n * sizeof(char*)); int i; for(i=0;i<n;i++) arr[i]=malloc((strlen(va_arg(args,char*)) + 1) * sizeof(char)); va_end(args); //store length of each string to lenArr //find max length and store it to temp (for sorting) va_list args; va_start(args,n); int […]

命令行参数如何工作?

正如问题所提到的,命令行参数如何在C中工作(通常是任何语言)。 我能想到的逻辑解释是,操作系统在启动时为流程设置某种环境值。 但是如果它是真的我不应该像argp [i]那样访问它们(我修改了main以期望第二个参数为char ** argp而不是** argv)。 请解释。

在C中打印指针地址

我知道我的问题非常简单,但谷歌他们并没有给我任何有用的结果……他们可能太简单了!! 第1名 char* createStr(){ char* str1 = malloc(10 * sizeof(char)); printf(“str1 address in memory : %p\n”, &str1); return str1; } int main(void){ char* str2 = createStr(); printf(“str2 address in memory : %p\n”, &str2); } 结果: str1 address in memory : 0x7fffed611fc8 str2 address in memory : 0x7fffed611fe8 为什么地址不同于createStr()函数以及如何释放(str1)? 第2号 int main(int argc, int *argv[]){ printf(“Basename […]