C:调用main时传递的存储参数
我想知道编译时如何在C中存储参数: 例如:我想存储2个用户输入字符串变量。 主管道的名称如下:C:调用main时传递的存储参数,c,string,variables,C,String,Variables,我想知道编译时如何在C中存储参数: 例如:我想存储2个用户输入字符串变量。 主管道的名称如下: ./main "Hello World!" World 我们应该存储Hello World!在string1和string2中的世界 假设我们只能使用main函数而不使用head函数,而不使用指针 编辑:以下是我仍然无法使用的代码: #include <stdio.h> #include <err.h> int main (int argc, char *argv[])
./main "Hello World!" World
我们应该存储Hello World!在string1和string2中的世界
假设我们只能使用main函数而不使用head函数,而不使用指针
编辑:以下是我仍然无法使用的代码:
#include <stdio.h>
#include <err.h>
int
main (int argc, char *argv[])
{
if (argc != 2)
{
errx(1, "Error");
}
printf("Number of arguments = %i\n", argc);
for (int k = 0; k < argc; k += 1)
{
printf("argv[%i] = %s\n", i, argv[i]);
}
return 0;
}
实际上,主声明是int mainnt argc,char**argv;或int main argc,char*argv[];,其中:
argc是传递的参数数
**argv或*argv[]包含要传递的参数
因此,在声明main时,必须使用指针传递参数,没有其他方法。在您的示例中。/main Hello World!在世界范围内,该计划将获得:
argc是3
argv[0]是。/main
argv[1]是Hello World!
argv[2]是一个世界
你能发布你尝试过的代码吗?或者运行代码时收到的任何错误消息?我无法测试它,因为我无法存储变量。完全不使用指针也可以做到这一点Bowling先生,我看到了这一点,但不理解这两个字符串将如何存储,如何存储?在C中,如果不使用指针,则无法做到这一点。您需要它们从命令行和字符串中传递参数。好的,谢谢。但不知怎的,我在打印时出错了。。。我不打印fargv[%I]=%s,I,argv[I],但它给了我一个error@quiasdesamis2:除了在格式字符串末尾省略了换行符之外,到处都是零散的双引号。考虑使用单引号,或者使用您希望在格式字符串中出现的每个引号。您需要更像:printfargv[%i]=\%s\\n,i,argv[i];-请注意,这将删除显示在中的尾随双引号,其中表示:printfargv[%i]=%s,i,argv[i]。请尝试使用printfargv[%u]=%s\n,i,argv[i];,由于我是[0-2]范围内的未签名者,它仍然会给我2个错误,分别位于>i和>argv[i]我已经编辑了我的问题,请看一看,它没有编译