带参数的函数main怎么用?
比如说用C语言编写一个程序,编译链接后得到一个叫qwe.exe的程序在f盘从命令提示符中打开f:后输入qwe26就可以实现得到2+6的结果。用函数main(intargc...
比如说用C语言编写一个程序,编译链接后得到一个叫qwe.exe的程序在f盘
从命令提示符中打开f:后输入qwe 2 6 就可以实现得到2+6的结果。
用函数main(int argc,char* argv[])该怎么用啊? 展开
从命令提示符中打开f:后输入qwe 2 6 就可以实现得到2+6的结果。
用函数main(int argc,char* argv[])该怎么用啊? 展开
2015-05-23 · 知道合伙人教育行家
关注
展开全部
main是一个函数,也能带参数。
它的参数有两个,格式 如下:
main(int argc, char *argv[])
第一个是一个int型变量,表示参数的个数。
第二个是一个字符串指针数组,数组中的每一个指针都指向一个字符串,这些字符串就是用户传给程序的参数,这些参数用用空格分开。
这两个变量 的名字没有特别要求,你完全可以把argc改成m等其他可用的名字,但一般是这两个:argc(=args count)和argv(args value)。
最后的运行是这样的,例如./main arg1 arg2 arg3,这种格式类似linux下的命令,如rm file等。
下面给出一段简单的代码 :
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("argc=%d/n", argc);
int i = 0;
for (i=0; i<argc; i++)
{
printf("argv[%d]=%s/n", i, argv[i]);
}
return 0;
}
编译gcc main.c -o main, 运行 ./main xiao she结果如下:
argc=3
argv[0]=./main
argv[1]=xiao
argv[2]=she
./main会被作为用户输入的第一个参数。
对于带参数的main函数的调试 ,我们可以使用gdb ,步骤有3:
(1)编译加-g参数,如gcc -g main.c -o main。
(2)运行gdb,如gdb main,同不带参数的main程序一样。
(3)增加参数,增加参数的方法有两种:a)run main 参数列表 b)set args 参数列表。
它的参数有两个,格式 如下:
main(int argc, char *argv[])
第一个是一个int型变量,表示参数的个数。
第二个是一个字符串指针数组,数组中的每一个指针都指向一个字符串,这些字符串就是用户传给程序的参数,这些参数用用空格分开。
这两个变量 的名字没有特别要求,你完全可以把argc改成m等其他可用的名字,但一般是这两个:argc(=args count)和argv(args value)。
最后的运行是这样的,例如./main arg1 arg2 arg3,这种格式类似linux下的命令,如rm file等。
下面给出一段简单的代码 :
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("argc=%d/n", argc);
int i = 0;
for (i=0; i<argc; i++)
{
printf("argv[%d]=%s/n", i, argv[i]);
}
return 0;
}
编译gcc main.c -o main, 运行 ./main xiao she结果如下:
argc=3
argv[0]=./main
argv[1]=xiao
argv[2]=she
./main会被作为用户输入的第一个参数。
对于带参数的main函数的调试 ,我们可以使用gdb ,步骤有3:
(1)编译加-g参数,如gcc -g main.c -o main。
(2)运行gdb,如gdb main,同不带参数的main程序一样。
(3)增加参数,增加参数的方法有两种:a)run main 参数列表 b)set args 参数列表。
展开全部
main函数中的两个参数,argc表示输入参数的个数,argv[]是参数的一个数组,你输入2 6,那么argc是2,argv[]两面则是2和6两个字符。
你在通过类型转换把2 6转成数字,相加后输出就可以了。
你在通过类型转换把2 6转成数字,相加后输出就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int main(int argc, char *argv[])
{
int a,b;
if(argc!=3) return 0;
a=atoi(argv[1]);
b=atoi(argv[2]);
printf("%d", a+b);
return 0;
}
{
int a,b;
if(argc!=3) return 0;
a=atoi(argv[1]);
b=atoi(argv[2]);
printf("%d", a+b);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-05-25
展开全部
//---------------------------------------------------------------------------
#include <stdio.h>
int main(int argc, char* argv[])
{
int a,b;
if (argc<3) {
fprintf(stderr,"args error\n");
return(-1);
}
sscanf(argv[1],"%d",&a);
sscanf(argv[2],"%d",&b);
printf("%d\n",a+b);
return 0;
}
//---------------------------------------------------------------------------
#include <stdio.h>
int main(int argc, char* argv[])
{
int a,b;
if (argc<3) {
fprintf(stderr,"args error\n");
return(-1);
}
sscanf(argv[1],"%d",&a);
sscanf(argv[2],"%d",&b);
printf("%d\n",a+b);
return 0;
}
//---------------------------------------------------------------------------
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询