我不擅长编程,最近开始阅读有关C ++的教程。
我决定尝试制作一个简单的二十一点程序。我试图用“大文本”制作一个标题,但是C ++阻止我这样做,因为它正在检测文本中的其他内容。
//Start Screen Begin
cout << " ____ _ _ _ _ ";
cout << "| __ )| | __ _ ___| | __(_) __ _ ___| | __ ";
cout << "| _ \| |/ _` |/ __| |/ /| |/ _` |/ __| |/ / ";
cout << "| |_) | | (_| | (__| < | | (_| | (__| < ";
cout << "|____/|_|\__,_|\___|_|\_\/ |\__,_|\___|_|\_\ ";
cout << " |__/ ";
//Start Screen End
这是我想要显示的内容,但仍然出现以下错误:
对'WinMain @ 16'的未定义引用
我在问是否有办法告诉C ++我只想让它读取和显示文本,而不是使用任何函数。
答案 0 :(得分:72)
对于C ++ 11原始字符串文字而言,这比使用\
转义\\
更好:
#include <iostream>
int main() {
using namespace std;
//Start Screen Begin
cout << R"( ____ _ _ _ _ )" << '\n';
cout << R"(| __ )| | __ _ ___| | __(_) __ _ ___| | __ )" << '\n';
cout << R"(| _ \| |/ _` |/ __| |/ /| |/ _` |/ __| |/ / )" << '\n';
cout << R"(| |_) | | (_| | (__| < | | (_| | (__| < )" << '\n';
cout << R"(|____/|_|\__,_|\___|_|\_\/ |\__,_|\___|_|\_\ )" << '\n';
cout << R"( |__/ )" << '\n';
//Start Screen End
}
检查输出,它适用于支持C ++ 11的合适编译器:http://coliru.stacked-crooked.com/a/964b0d2b8bde8b3d
以下内容也适用:
#include <iostream>
int main() {
using namespace std;
//Start Screen Begin
cout <<
R"(
____ _ _ _ _
| __ )| | __ _ ___| | __(_) __ _ ___| | __
| _ \| |/ _` |/ __| |/ /| |/ _` |/ __| |/ /
| |_) | | (_| | (__| < | | (_| | (__| <
|____/|_|\__,_|\___|_|\_\/ |\__,_|\___|_|\_\
|__/
)";
//Start Screen End
}
答案 1 :(得分:13)
您的倒数第二个文字文字中包含多个\
个字符。这是一个转义字符,因此要使用文字\
字符,必须将其转义为\\
,例如:
cout << "|____/|_|\\__,_|\\___|_|\\_\\/ |\\__,_|\\___|_|\\_\\ ";
它在代码中看起来不太好,但在运行应用程序时看起来会很好。
对于引用错误,WinMain()
是GUI应用程序的入口点,而main()
是控制台应用程序的入口点,所以听起来好像您没有正确创建/配置项目它正在尝试链接到WinMain()
而不是main()
。
答案 2 :(得分:0)
您需要转义反斜杠,而不是一个\
有两个\\
。
这些用于表示字符串文字("\n"
)中出现的"..."
(换行符)等特殊字符。你的Big-Text错过了所有这些换行BTW。
对'WinMain @ 16'的未定义引用
显然你正在尝试编译一个GUI项目。检查代码块项目类型。