所以我开始使用c ++(我试图用新语言拓宽思路)但是我遇到了一个让我感到困惑的问题,而不是我想的那样...
使用Visual Studio Express 2012,我用C ++创建了一个控制台win32应用程序,这是我的主要方法:
// TestApp.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
然而,由于我对c ++一无所知,我在网上搜索了一些内容,所有这些都以不同的方式设置了declerations
#include <iostream>
using namespace std;
int main()
{
cout<<"HEY, you, I'm alive! Oh, and Hello World!\n";
cin.get();
}
和
// my first program in C++
#include <iostream>
int main()
{
std::cout << "Hello World!";
}
我尝试输入&#34; std :: cout&#34;,但它不会接受它, 有人可以澄清为什么和差异的重要性?
答案 0 :(得分:0)
主方法可以使用或不使用参数进行定义。这完全取决于您使用申请的目的。
同样对于您的程序,您需要具有返回值
// my first program in C++
#include <iostream>
int main()
{
std::cout << "Hello World!";
return 0;
}
答案 1 :(得分:0)
int _tmain(int argc, _TCHAR* argv[])
是(至少我认为是这样)一个仅限Windows的库和编译器,取决于声明主函数。
绝对没错,就是这样声明主要:
int main(int argc, char const *argv[])
{
//do something
return 0;
}
或者像这样:
int main()
{
//do something
return 0;
}
这绝对是正确的C ++,你可以普遍使用它。
答案 2 :(得分:0)
C ++程序可能有两个开头之一:
int main(int argc, char *argv[])
或
int wmain(int argc, wchar_t *argv[])
其中第一个获取其参数(argv)为ANSI字符,而第二个获取“宽”字符 - 通常为UTF-16或UTF-32,具体取决于平台。
Microsoft定义了一个框架,允许您创建可以使用ANSI或宽字符编译的代码。
int _tmain(int argc, TCHAR *argv[])
在幕后,他们有类似的东西:
#if defined UNICODE
#define _tmain wmain
#define TCHAR wchar_t
#else
#define _tmain main
#define TCHAR char
#endif
他们还有辅助函数,如_tprintf()
和_tcscpy()
。
注意:正如其他人指出的那样,argc和argv参数是可选的,所以你也可以拥有
int main()
和
int wmain()
和(对于Microsoft和兼容的编译器)
int _tmain()
另请注意,虽然_tmain()
不是严格可移植的,但如果您想要移植到其他平台,则可以轻松创建自己的#define
宏。