C中的命令行参数到底有什么作用啊

C中的命令行参数到底有什么作用啊,第1张

C中的命令行参数又叫位置参数,它可以被传到程序里面,派各种用途。

C里的main()写全了应当是:

main(int argc,char argv[]){

}

argc的值等于位置参数总个数(包括程序名字)。

argv[0] 存程序名字,argv[1] 存第一个位置参数,argv[i]存第i 个位置参数,直到argv[argc-1]

例如: clip -in ajpg -out bjpg -x1 10 -y1 10 -x2 200 -y2 160

参数0,程序名clip

参数1,2: -in ajpg 输入文件名

参数3,4: -out bjpg 输出文件名

参数5,6: -x1 10 裁剪起点x座标

参数7,8: -y1 10 裁剪起点y座标

参数9,10:-x2 200 裁剪终点x座标

参数11,12: -y2 160 裁剪终点y座标

这些参数通过命令行传入程序。

采用位置参数输入方法,避免了对话输入法。

例如,我要裁剪10张照片,我可以写一个批文件mybat

文件内容:

clip -in a1jpg -out b1jpg -x1 10 -y1 10 -x2 200 -y2 160

clip -in a2jpg -out b2jpg -x1 20 -y1 10 -x2 210 -y2 160

clip -in a3jpg -out b3jpg -x1 10 -y1 20 -x2 200 -y2 170

clip -in a4jpg -out b4jpg -x1 20 -y1 20 -x2 210 -y2 170

clip -in a10jpg -out b10jpg

运行mybat,就裁剪了10张照片。不必对话输入参数。

直接F5的话argc = 1,循环条件不成立,直接退出。

argc的含义是进入程序时输入的参数个数。F5是没有参数的。

你要输字符串的话先进到cmd命令行,

然后进到你编译好的程序所在目录(工程文件夹的debug文件夹里)

然后输入文件名,然后后面随便打一点参数,(如hello,exe abc)让argc > 1就可以了

// 注意这个函数不支持中文,因为没有将GBK编码转UTF,网上找GBKtoUTF8

string GBKToUTF8(const std::string& strGBK)

{

string strOutUTF8 = "";

WCHAR str1;

int n = MultiByteToWideChar(CP_ACP, 0, strGBKc_str(), -1, NULL, 0);

str1 = new WCHAR[n];

MultiByteToWideChar(CP_ACP, 0, strGBKc_str(), -1, str1, n);

n = WideCharToMultiByte(CP_UTF8, 0, str1, -1, NULL, 0, NULL, NULL);

char str2 = new char[n];

WideCharToMultiByte(CP_UTF8, 0, str1, -1, str2, n, NULL, NULL);

strOutUTF8 = str2;

delete[]str1;

str1 = NULL;

delete[]str2;

str2 = NULL;

return strOutUTF8;

}

以上就是关于C中的命令行参数到底有什么作用啊全部的内容,包括:C中的命令行参数到底有什么作用啊、C语言的命令行参数怎么运行啊我用VC6.0编了一个命令行参数的程序,极其简单,但编好了怎么用啊、c++ 用GetCommandLine() 获取命令行参数中文乱码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10054506.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存