int main( int argc, char *argv[ ], char *envp[ ])和_tmain(int argc, _TCHAR* ARGV[])下命令行参数用法

文章目录


什么是命令行参数:在命令行中给定的参数就是命令行参数。(即从输入位置角度理解)

命令行参数的作用:让我们可以在程序之外控制程序,例如linux或者dos中我们经常使用的命令,从本质上来说就是一个程序;而我们使用的参数,就是该命令(对应的程序)的命令行参数。

一:

在C语言中带参数的main()函数的命名形式int main(int argc, _TCHAR* argv[]){ return 0; }

第一个参数的值(习惯上写为argc)表示程序运行时,命令行参数的个数

第二个参数的值(习惯上写为*argv[])表示指向字符串数组的指针,每个字符串对应一个参数

在c或c++中的示例:

int main(int argc, char* argv[])
{
	cout << "argc = " << argc << endl;
	for (int i = 0; i<argc; i++)
		cout <<"argv["<<i<<"] = "<< argv[i] << endl;
	return 0;
}

在这里插入图片描述
argv[0]表示输入程序的路径及名称

argv[1],argv[2]…表示自己输入的参数

argc用来统计参数的个数,因为路径为默认的参数,所以argc至少为1

二:

_tmain(int argc, _TCHAR* argv[]) 示例:

int _tmain(int argc, _TCHAR* argv[])
{
	cout << argc << endl;
	for (int i = 0; i < argc; i++)
	{
		cout << argv[i] << endl;
	}
	return 0;
}

在这里插入图片描述
输出的是一串数字而非我们想要的路径,这是因为_TCHAR的声明:typedef wchar_t _TCHAR

在Unicode中_TCHAR被认为是宽字符,输出宽字符时我们要使用wcout进行输出,输出结果为:
在这里插入图片描述
又遇到问题了,好像是无法输出中文,如何输出中文,

只需要加一句话:wcout.imbue(std::locale(“chs”));
代码示例:

#include "stdafx.h"
#include<iostream>
#include<opencv2/opencv.hpp>


using namespace std;
using namespace cv;



int _tmain(int argc, _TCHAR* argv[])
{
	wcout.imbue(std::locale("chs"));// //设置语言区域为中国
	wcout << argc << endl;
	for (int i = 0; i < argc; i++)
	{
		wcout << "argv[" << i << "]=" << argv[i] << endl;    //wcout输出
	}
	return 0;
}




在这里插入图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值