| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1049 人关注过本帖
标题:命令行参数
只看楼主 加入收藏
nbaqqqq
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:10 
命令行参数
#include<stdio.h>
main(int argc,char *argv[])
{int i;
printf("命令参数的个数是:%d\n",argc);
printf("本程序的名字是:%s\n",argv[0]);
if(argc>1)
{
    printf("其他参数:\n");
    for(i=1;i<argc;i++)
    {
        printf("%s\n",argv[i]);
    }
}
}         这是一个书上的用于演示命令行参数于main()函数各形参之间的关系的程序       没看明白
        书上说argv是指针数组,但printf("%s\n",argv[i]);是怎么回事?argv[i]是数组还是指针?是指针的话,就输出地址了,应该有*号啊。是数组也不可能啊,前面定义了是一维数组啊,应该只能输出一个字符,怎么能输出字符串呢?
书上说可以按命令行方式运行这个程序:文件名.exe hello baby!          可是我一运行就出文件名
图片附件: 游客没有浏览图片的权限,请 登录注册
根本没让我输入后面的hello baby!
搜索更多相关主题的帖子: 命令 参数 
2010-01-25 17:04
h978147355
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:63
专家分:187
注 册:2009-12-29
收藏
得分:5 
在doc环境下
进入上面的debug文件中  输入$命令行参数  hello world
那么它表示的就是argc是3 argv【0】是“命令行参数”,argv【1】是hello argv【2】是world
2010-01-25 17:46
nbaqqqq
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
收藏
得分:0 
doc环境?
2010-01-25 18:01
xinjinlong
Rank: 3Rank: 3
来 自:河南南阳
等 级:论坛游侠
帖 子:61
专家分:117
注 册:2010-1-19
收藏
得分:5 
你把程序编译好就拖到命令提示符下,再输入你要显示的内容就可以,记着路径最好没有中文
2010-01-25 18:45
邶风
Rank: 5Rank: 5
等 级:职业侠客
帖 子:287
专家分:335
注 册:2009-1-20
收藏
得分:0 
你不要去点开那个exe

应该这么做
打开cmd窗口,进入debug文件夹
然后输入:
文件名 hello baby

这样你的程序才有参数传进去



#include
2010-01-25 18:53
nbaqqqq
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
收藏
得分:0 
打开cmd窗口后,进入debug文件夹去哪输入
图片附件: 游客没有浏览图片的权限,请 登录注册
2010-01-25 19:39
nbaqqqq
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
应该是这个吧         但有什么用呢              
前面那个理论问题也没人解答   是问题太。。。吗 都不愿回答  可我真的不懂啊 是个新手
2010-01-25 19:57
邶风
Rank: 5Rank: 5
等 级:职业侠客
帖 子:287
专家分:335
注 册:2009-1-20
收藏
得分:10 
argv确实是个指针数组
argv[i]这个数组里面存放着指针
printf("%s",argv[i])); 输出的不是地址,而是一个字符串,具体你可以翻翻你的书怎么输出字符串(用字符串首字符的地址做指针输出)

#include
2010-01-25 20:08
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:10 
执行结果很正常:
1.先编译
2.在"开始"-->"运行"-->输入"cmd"-->出现这个黑色窗口就是控制台(也就是以前DOS窗口,它是字符界面,也叫命令行,因为在这个窗口中所有的操作命令都必须是用字符方式输入的)
3.用CD命令转到可编译好的可执行文件目录(注意按照你的设置先输入d:回车,再输入cd \VC++\debug回车)
4.输入:编译好的可执行文件名 hello baby(即下图中的 "argv hello baby"这一行),回车执行
5.我编译后的文件名argv.exe 执行过程与结果如下:
图片附件: 游客没有浏览图片的权限,请 登录注册


命令行参数说明:
argc表示参数个数
argv是指向参数的指针(而每个参数又是一个字符数组,因此argv相当于一个二维的字符数组,这样你可以理解argv[i]是什么了)
    argv[0]指向第一个参数,即程序名,argv[1]指向第二个参数,依此类推
   参数之间是以空格分隔来区分的)

[ 本帖最后由 cnfarer 于 2010-1-25 20:22 编辑 ]

★★★★★为人民服务★★★★★
2010-01-25 20:11
nbaqqqq
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
收藏
得分:0 
以下是引用邶风在2010-1-25 20:08:10的发言:

argv确实是个指针数组
argv这个数组里面存放着指针
printf("%s",argv)); 输出的不是地址,而是一个字符串,具体你可以翻翻你的书怎么输出字符串(用字符串首字符的地址做指针输出)
额 是啊 输出字符串是写字符数组名就可以了,然后首从地址开始输出所存储的内容,直到斜杠零结束。
2010-01-25 20:45
快速回复:命令行参数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013001 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved