命令行参数(C语言)
2023-12-13 09:29:36
目录
什么是命令行参数
概念:命令行参数指的是在运行可执行文件时提供给程序的额外输入信息。它们通常以字符串形式出现,并且紧跟着可执行文件名之后
//可执行文件program.exe、命令行参数arg1、arg2
program.exe arg1 arg2
main函数的参数
标准定义下,main 函数有两种常见形式:
//形式一:不接受任何输入参数
int main(void);
//形式二:接受两个输入参数:argc与argv
int main(int argc, char *argv[]);
参数含义:
- argc(argument count):传递给程序的命令行参数个数
- argv(argument value):指针数组,数组中的每一个指针都指向一个字符串
argc是整型,argv是指针数组
不传参打印
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("argc = %d\n", argc);
for (int i = 0; i < argc; ++i)
{
printf("argv[%d] =%s\n", i,argv[i]);
}
return 0;
}
如果不传入命令行参数时,argc默认为1,即argv[0]默认为当前可执行文件的路径
传参打印
编译器传参
传参步骤:调试->属性->配置属性->调试->命令参数
注意事项:不同参数之间采用空格分隔
传参效果演示:
#include <stdio.h> int main(int argc, char* argv[]) { printf("argc = %d\n", argc); for (int i = 0; i < argc; ++i) { printf("argv[%d] =%s\n", i,argv[i]); } return 0; }
???????此时表示传入了五个参数,除了argv[0]默认为前可执行文件的路径外,还有我们人为传入的“abc”、“def”、“132”、“152”四个参数
命令提示符传参
传参步骤:win + R->cmd->可执行文件的目录下->可执行文件 传参1 传参2 ......
注意事项:
1、可执行文件一般来说都是以.exe结尾的,.c不是可执行文件,如果不确定可执行1文件的目录,可以在不传参时查看agrv[0]的值,即当前可执行文件的路径。
2、进行文件的拷贝时,输入文件要位于当前可执行文件的同一目录下
传参效果演示:
命令行参数的应用(文件拷贝)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(int argc, char* argv[])
{
//使用命令行参数打开输入文件
FILE* fpIn = fopen(argv[1], "r");
if (fpIn == NULL)
{
printf("open %s file error.\n", argv[1]);
fclose(fpIn);
return -1;
}
//使用命令行参数打开输出文件
FILE* fpOut = fopen(argv[2], "w");
if (fpIn == NULL)
{
printf("open %s file error.\n", argv[2]);
fclose(fpOut);
fclose(fpIn);
return -1;
}
//从输入文件中读取字符,并写入到输出文件中,直到遇到文件结束
char ch = fgetc(fpIn);
while (ch != EOF)
{
fputc(ch, fpOut);
ch = fgetc(fpIn);
}
//关闭输入输出文件
fclose(fpIn);
fclose(fpOut);
return 0;
}
~over~?
文章来源:https://blog.csdn.net/m0_73975164/article/details/134871941
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!