如何用C语言实现带参数的dos命令?

比如说的我命令是cc,后边可以跟一个参数是文件名,ccabc.txt,关键是后边这个文件名怎么能传进程序里?不用批处理,只用C语言。对不起,现在没有分了。... 比如说的我命令是cc,后边可以跟一个参数是文件名,cc abc.txt,关键是后边这个文件名怎么能传进程序里?不用批处理,只用C语言。对不起,现在没有分了。 展开
 我来答
_叶子妞妞_
推荐于2016-08-01 · TA获得超过3672个赞
知道小有建树答主
回答量:327
采纳率:83%
帮助的人:90.4万
展开全部

需要使用带参数的主函数来实现。

带参数的主函数格式为:

int main(int argc, const char *argv[]);

其中argc为命令行参数的个数,包括可执行文件名。

argv为一个字符串数组,共计有argc个元素,依次为命令行输入的各个参数。其中argv[0]为执行的文件名。

下面的程序可以打印出文件名及参数。

#include <stdio.h>
int main(int argc, const char *argv[])//定义带参数的主函数
{
    int i;
    printf("执行文件名为:%s\n", argv[0]);//打印可执行文件名
    printf("有%d个参数:\n", argc-1);//打印其它参数个数。
    for(i = 1; i < argc; i ++)
    {
        printf("参数%d = %s\n", i, argv[i]);//打印所有参数值。
    }
    
    return 0;
}

输入:

test.exe p1 p2 333 44

输出:

执行文件名为:test.exe

有4个参数:

参数1 = p1

参数2 = p2

参数3 = 333

参数4 = 44

Big_Hawk
2012-07-10 · 超过27用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:67.6万
展开全部
如下,假设你编译的可执行文件是test.exe, 在dos命令行输入 test cc abc.txt
那么在main函数中,cc会传给argv[1], abc.txt会传给argv[2]
void main(int argc, char *argv[])
{
if(strcmp(argv[1], "cc") == 0)

{
if(strcmp(argv[2], "abc.txt") == 0){
//do what you want.
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
adoqq_bd
推荐于2016-07-18 · TA获得超过7050个赞
知道大有可为答主
回答量:1818
采纳率:63%
帮助的人:1623万
展开全部
//给你个例子 命令行格式cc abc.txt 显示abc.txt的内容

#include <stdio.h>
int main(int argc,char** argv)
{
FILE* fp;
char ch;
if(argc<2) //argc统计命令行参数个数,最小是1,命令文件自身算第一个参数
{
printf("缺少参数!!!");
return 2;
}
fp=fopen(argv[1],"r"); //输入的参数从argv[1]开始,因为argv[0]是命令文件自身
if(fp==NULL)
{
printf("无文件!!!");
return 3;
}
while((ch=fgetc(fp))!=EOF)
{
putchar(ch);
}
fclose(fp);
return 0;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式