_tmain(int argc, _TCHAR* ARGV[])下命令行参数用法

标签: 命令行参数 vs 如何使用命令行 _tmain与main的区别 输出_tmain中argv
11636人阅读 评论(0) 收藏 举报
分类:

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

命令行参数的作用让我们可以在程序之外控制程序,例如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"));

代码示例:

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;
	}
	return 0;
}



查看评论

c/c++ int _tmain(int argc, _TCHAR* argv[])

在visual c++ 2005/8 中,当选择编辑一个32位Win32控制台应用程序时.初始状态下系统自带函数:   int _tmain(int argc, _TCHAR* argv[]) ...
  • avrmcu1
  • avrmcu1
  • 2014-08-31 16:08:21
  • 694

int main(int argc, char* argv[])和int _tmain(int argc, _TCHAR* argv[])区别

用过C的人都知道每一个C的程序都会有一个main(),但有时看别人写的程序发现主函数不是int main(),而是int _tmain(),而且头文件也不是而是,会困惑吧? 一起来看看他们有...
  • ywhputx0802
  • ywhputx0802
  • 2014-07-19 16:42:43
  • 941

int _tmain(int argc, _TCHAR* argv[])

_tmain(int argc, _TCHAR* argv[])函数中第一个参数表示包括函数执行路径参数在内的参数个数 argv[]第一个参数用来存储函数的执行路径,后面用来存储自己写入的参数。...
  • luliyuan
  • luliyuan
  • 2014-10-28 11:15:23
  • 1418

int _tmain(int argc, _TCHAR argv[]) 函数

  • 2013年12月15日 16:38
  • 559B
  • 下载

_tmain的_TCHAR*argv只读取到每个参数第一个字母的问题

使用_tmain的话,在ascii环境下会生成 int main(int argc, char* argv[]); 在unicode环境下会生成 int wmain(int argc, wcha...
  • yyf1990cs
  • yyf1990cs
  • 2016-05-27 11:09:31
  • 1508

c语言main函数的argc和argv[]参数问题

第一个参数argc是int型的,用来存放命令行参数的个数,实际上argc所存放的数值比命令行参数的个数多1,即将命令字(可执行文件名)也计算在内。  第二个参数argv是一个一维的一级指针数组,它是用...
  • bwangk
  • bwangk
  • 2016-05-16 21:36:09
  • 2426

C/C++—— #include“stdafx.h”详解

转自:http://blog.csdn.net/qingkong8832/article/details/6695123 1,用VS2008新建项目,选择【Win32】-【Win32控制台应用程序】...
  • sinat_36053757
  • sinat_36053757
  • 2017-05-06 15:03:38
  • 2151

C++ 变长参数函数小结

变长参数的函数,即参数个数可变、参数类型不定的函数。 设计一个参数个数可变、参数类型不定的函数是可能的,最常见的例子是printf函数、scanf函数和高级语言的Format函数。在C/C++中,为了...
  • hellokandy
  • hellokandy
  • 2016-07-14 10:31:03
  • 2399

main函数第3个参数envp装的是什么

1.引入  一般情况下,main函数带有两个参数,分别为int argc和char* argv[],各自表示参数个数、参数选项。比如在cmd窗口中运行ping www.csdn.net -t,那么传...
  • btwsmile
  • btwsmile
  • 2011-08-14 17:50:49
  • 7340

C++基础积累 _tmain(int argc,_CHAR*arg[])参数的具体意义

原文链接:http://hi.baidu.com/quvia/item/9536d20a90b7f3eefe240d66   _tmain(int argc, _TCHAR* argv[])函数中第一...
  • yhhwatl
  • yhhwatl
  • 2013-07-06 14:06:30
  • 1237
    个人资料
    等级:
    访问量: 13万+
    积分: 1534
    排名: 3万+
    联系方式
    邮箱:renyhui@126.com QQ:541125122
    最新评论