关闭

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

标签: 命令行参数vs如何使用命令行_tmain与main的区别输出_tmain中argv
10794人阅读 评论(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;
}



1
0
查看评论

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

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

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

main()是标准C++的函数入口。标准C++的程序入口点函数,默认字符编码格式ANSI 函数签名为: int main(); int main(int argc, char* argv[]); _tmain()是微软操作系统(windows)提供的对unicode字符集和ANSI字符集...
  • u011721508
  • u011721508
  • 2014-08-24 00:17
  • 1785

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

使用_tmain的话,在ascii环境下会生成 int main(int argc, char* argv[]); 在unicode环境下会生成 int wmain(int argc, wchar_t* argv[]); 所以实际上参数得到的是一个wchar* 它一个字母占用两个字节,代表...
  • yyf1990cs
  • yyf1990cs
  • 2016-05-27 11:09
  • 1379

工作总结,main函数取不到命令行参数,_tmain和main

_tmain和main,_tchar和char有区别, 在用的时候要注意。如果想要取命令行输入参数,必须使用后者。
  • RunBoying
  • RunBoying
  • 2011-11-24 12:15
  • 528

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

用过C的人都知道每一个C的程序都会有一个main(),但有时看别人写的程序发现主函数不是int main(),而是int _tmain(),而且头文件也不是而是,会困惑吧? 一起来看看他们有什么关系吧   首先,这个_tmain()是为了支持unicode所使用的mai...
  • ywhputx0802
  • ywhputx0802
  • 2014-07-19 16:42
  • 857

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

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

怎么理解int main(int argc, const char *argv[])

每次创建一个C的Project都会看到已经编写好的Hello World!简单程序,如下:#include<stdio.h>int main(int argc, const char *argv[]) { printf("Hello World!\n"); ...
  • yang_chengfeng
  • yang_chengfeng
  • 2015-10-25 20:37
  • 5042

_tmain()和main()的区别

首先,这个_tmain()是为了支持unicode所使用的main一个别名而已,既然是别名,应该有宏定义过的,在哪里定义的呢?就在那个让你困惑的里,有这么两行 #include #include 我们可以在头文件里找到_tmain的宏定义  &#...
  • xywlzd
  • xywlzd
  • 2012-10-08 13:36
  • 913

_tmain与main的区别

用过C言语的人都知道每一个C的程序都会有一个main函数,但有时看别人写的程序却出现了_tmain,会感动很困惑。我当时也是很困惑,于是上网找资料看。现在将我得到的结果总结一下。因为并没有什么根据,如果有误。欢迎指正:_tmain与main的区别1。 main是C程序的函数,_tmain是main为...
  • hulefei29
  • hulefei29
  • 2008-10-19 13:47
  • 7274

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

用过C的人都知道每一个C的程序都会有一个main(),但有时看别人写的程序发现主函数不是int main(),而是int _tmain(),而且头文件也不是而是,会困惑吧? 一起来看看他们有什么关系吧 首先,这个_tmain()是为了支持unicode所使用的main一个别名而已,既然是别名...
  • Better2326
  • Better2326
  • 2015-03-12 15:47
  • 306
    个人资料
    • 访问:122917次
    • 积分:1451
    • 等级:
    • 排名:千里之外
    • 原创:37篇
    • 转载:6篇
    • 译文:2篇
    • 评论:26条
    最新评论