如何将参数传递给 C 语言中的 main() 函数?
How can i pass arguments to main() function in c language?
我为 c 编程语言一书中的练习 1-20 编写了一个程序。
节目是:
#include <stdio.h>
#include <stdlib.h> /* for atoi() */
main(int argc, char *argv[]) {
int c,i,n;
if (argv[1])
n=atoi(argv[1]);
while((c=getchar())!=EOF) {
if(c!='\t') {
printf("%c",c);
}else
{
for(i=1;i<=n;i++) {
printf(" ");
}
}
}
}
如何在没有 atoi() 函数的情况下将参数传递给 c 语言中的 main() 函数?
程序的所有参数都以字符串形式传递,argc
告诉您有多少,argv
包含实际参数。
如果你需要一个数值,你必须以某种方式转换它们,你可以像你所做的那样使用atoi,或者使用许多库之一来解析选项,比如getopt
你应该检查 argc
而不是检查 argv[1]
,所以
if (argc >= 2)
n=atoi(argv[1]);
查看 this 实用指南。
这是一个小程序,可以打印传递给您的程序的所有参数,包括程序名称本身。
int main(int argc, char *argv[]) {
int i;
for (i = 0; i < argc; i++) {
printf("Arg %d: %s\n", i, argv[i]);
}
return 1;
}
传递给 main 的参数是您在命令行中传递的参数。示例:您的二进制文件名为 a.out 您会这样做:
./a.out 5
argv 数组现在有两个 (argc) 条目:[0] "./a.out" [1] "5"
。
您应该始终在访问 argv 之前测试 argc 是否足够大。
顺便说一句:atoi
只是将传递的字符串 (argv[1]
) 转换为整数
我为 c 编程语言一书中的练习 1-20 编写了一个程序。
节目是:
#include <stdio.h>
#include <stdlib.h> /* for atoi() */
main(int argc, char *argv[]) {
int c,i,n;
if (argv[1])
n=atoi(argv[1]);
while((c=getchar())!=EOF) {
if(c!='\t') {
printf("%c",c);
}else
{
for(i=1;i<=n;i++) {
printf(" ");
}
}
}
}
如何在没有 atoi() 函数的情况下将参数传递给 c 语言中的 main() 函数?
程序的所有参数都以字符串形式传递,argc
告诉您有多少,argv
包含实际参数。
如果你需要一个数值,你必须以某种方式转换它们,你可以像你所做的那样使用atoi,或者使用许多库之一来解析选项,比如getopt
你应该检查 argc
而不是检查 argv[1]
,所以
if (argc >= 2)
n=atoi(argv[1]);
查看 this 实用指南。
这是一个小程序,可以打印传递给您的程序的所有参数,包括程序名称本身。
int main(int argc, char *argv[]) {
int i;
for (i = 0; i < argc; i++) {
printf("Arg %d: %s\n", i, argv[i]);
}
return 1;
}
传递给 main 的参数是您在命令行中传递的参数。示例:您的二进制文件名为 a.out 您会这样做:
./a.out 5
argv 数组现在有两个 (argc) 条目:[0] "./a.out" [1] "5"
。
您应该始终在访问 argv 之前测试 argc 是否足够大。
顺便说一句:atoi
只是将传递的字符串 (argv[1]
) 转换为整数