| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 516 人关注过本帖
标题:将命令行参数传递给main()的一个问题。
只看楼主 加入收藏
小青龙
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2013-8-2
结帖率:80%
收藏
已结贴  问题点数:10 回复次数:4 
将命令行参数传递给main()的一个问题。
刚刚学习到“将命令行参数传递给main() 函数,突然想到一个小问题,求解!”

以下是一小段代码:
程序代码:
#include<stdio.h>

int main(int argc, char *argv[])
{
    int count;
    
    printf("Program name: %s\n", argv[0]);
    
    if(argc > 1)
    {
        for (count = 1; count < argc; count++)
            printf("Argument %d: %s\n", count, argv[count]);
    }
    else
        puts("No command line arguments entered.");
    
    system("pause");
    return 0;
}


由该代码生成的可执行文件,可以在命令提示符中输入该可执行文件名以及一些参数(如 argument1, argument2)。我想知道的是:既然这些参数都可以在命令行中输入,那么嫩不能“顺便”利用这这输入的参数来实现一些功能呢?如果这些输入的参数没能实现一些实际的功能,只是输入进去,有意义么?

比如,我在命令提示符中输入第一个参数:dir,然后我想利用这个 dir 参数,实现“将可执行文件所在的位置的所有文件目录列出”,那么在源代码中怎么写呢?用什么函数好呢?我知道 system(dir) 这个语句可以实现列出文件目录,这个方法如何应用到以上这一小段代码中呢?
搜索更多相关主题的帖子: count 
2013-08-30 02:50
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:3 
比如说ipconfog /a
这里面的ipconfig和/a都会输入到main的参数列表中...
剩下的事就是你自己去判断了...

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-08-30 06:14
liufashuai
Rank: 9Rank: 9Rank: 9
来 自:冥界-魔域-魂殿
等 级:蜘蛛侠
威 望:1
帖 子:370
专家分:1374
注 册:2012-6-22
收藏
得分:7 
楼主多虑了,既然叫做命令行参数,就是让你传递参数的
而且大多数使用命令行参数只要是执行不同的配置,同一执行文件,(eg:ls -a -l)

你传个命令干啥,还不如你直接写到程序中,不用传参多方便

而且就一个名字,还可以直接执行命令,嫌麻烦还可以写脚本。没这个必要。
你要理解命令行参数为什么而设计的。

另外你说的system,可以实现程序内部执行命令行,但是你要知道shell上的命令一般都是用系统调用写的
因此你完全可以用系统调用实现这些:
系统调用文件相关的处理:目录相关的,自己查吧。
这些能帮你更好的理解底层操作

有一种落差是,你配不上自己的野心,也辜负了所受的苦难。






2013-08-30 08:44
小青龙
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2013-8-2
收藏
得分:0 
回复 3楼 liufashuai
我这个问题可能有点傻,但是我关注的主要不是有没有必要、容不容易、效率高不高,我关注的是能不能实现、怎样实现。
我的意思是,你是过来人,你或许知道什么是最有效率的,什么是捷径,但是我不是。我也是突然想到这个问题,我自己也暂时回答不了我自己,故有此问。
但是还是谢谢回答,谢谢
2013-08-30 14:23
netaa001
Rank: 2
等 级:论坛游民
帖 子:73
专家分:69
注 册:2013-8-5
收藏
得分:0 
全都0分滚出碗里。
2013-08-30 14:34
快速回复:将命令行参数传递给main()的一个问题。
数据加载中...
 
   



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

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