
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() 获取命令行参数中文乱码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)