永发信息网

对C语言中main函数的参数的问题

答案:5  悬赏:30  手机版
解决时间 2021-05-06 12:58
#include "stdio.h"
#include "string.h"
main(int argc,char *argv[])
{
int i,len=0;
for(i=1;i<argc;i++)
  len+=strlen(argv[i]);
printf("%d\n",len);
}

书上说此程序编译连接生成的可执行文件是exl.exe。若运行时输入带参数的命令行是:ex1 abcd efg 10
则运行的结果是9!
请问如何编译连接生成的可执行文件是exl.exe。。。我把上面的程序输入后只组建后弹出个黑色窗口,显示0.而且无法输入ex1 abcd efg 10
最佳答案

int argc,char *argv[]

上面两个参数,在控制台方式中,基本没用过,它们的意义argc 参数个数,argv参数列表。

用 ex1 abcd efg 10 来运行,可以理解为 argc =3,因为以空格为分隔,有三个参数,而argv 里则是参数内容,当你依次取argv 元素并计算长度,就等同于计算abcdefg10字串的长度。其中各个参数是分别存放在argv的各个元素中的。

所以当使用exe方式并附参数执行的时候,输出的就是参数的总长度,此例为9

全部回答
你说点组建后弹出一个黑窗口说明你对软件还不熟悉,因为弹出黑窗口实际上是直接点运行的效果。点组建是没有变化的只会在下面的窗口提示有没有警告和错误。默认是在项目目录里的debug目录下生成exe程序。你需要开始-运行,输入cmd回车,之后用cd命令切换到那个目录下直接输入ex1 abcd efg 10 回车。
ex1 abcd efg 10 是LINUX 命令 在 gcc 中可以用

额,你是初学者还是好好下谭浩强的视频看看吧。

从这程序首先看出你写程序不细致。main(int argc,char *argv[]),main()里面既然如此定义,后面在for()里面却写错了写成argc,很不应该。其次,没有从“char **”到“int”的转换,i和argv是没法比较的,int 和  char怎么比较呢???

最后你是无法输入,请问没有scanf();或者getchar();语句,你如何输入。那个main()只是提供一个嵌套函数而已,你这个程序缺个主函数。你的C语言基础不杂实,好好加油,希望能帮到你

这个是带参数的main,你要在控制台下边,输入生成的可执行文件,然后在后边输入参数

或建个快捷,在快捷上添加参数也可以的

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
长的不漂亮有资格追求真爱吗?外在美很重要吗?
炫舞图标杂点亮?
七龙珠第二部的18号有没有被吸收?
这些MP4牌子是哪的?
淘宝怎么查看注册时间,怎么才能查到自己的淘
鑫达装饰地址有知道的么?有点事想过去
你可以送我只一百级的精灵吗?
起名字要4个字的 父亲姓何 母亲姓姚
从桐乡乘车到丽水要多少时间
要好多级才能结婚啊
如果你爱人背叛你、你会怎样?
我要怎样取消对好友的QQ会员炫铃?
TIFFANY 1837™银戒指多少钱和CK手镯
狗狗打嗝是为什么?有时还呕吐黄色的泡沫。
诺基亚E52怎么样啊?、
推荐资讯
梦幻诛仙练骨?
“对方以通过你的身份验证”与“对方以通过你
贵阳中医学院
问问12级需要多少时间?
宝剑锋从磨砺出,梅花香自苦寒来 是什么意思
在游戏里怎么复制自己的名字
哪有最基础的Photoshop课程
加盟的意思,加盟是什么概念
三国里刘备说他是中山靖王之后?那他是中山靖
跪求!!中关村男孩 离别的车站MP3
求梦幻西游套装的详细资料
我的QQ自由幻想原先点亮了,可是又自动灭了,
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?