仅检测报价单中的文本(C ++)

时间:2014-01-25 17:34:02

标签: c++

我不擅长编程,最近开始阅读有关C ++的教程。

我决定尝试制作一个简单的二十一点程序。我试图用“大文本”制作一个标题,但是C ++阻止我这样做,因为它正在检测文本中的其他内容。

    //Start Screen Begin
cout << " ____  _            _     _            _        ";
cout << "| __ )| | __ _  ___| | __(_) __ _  ___| | __    ";
cout << "|  _ \| |/ _` |/ __| |/ /| |/ _` |/ __| |/ /    ";
cout << "| |_) | | (_| | (__|   < | | (_| | (__|   <     ";
cout << "|____/|_|\__,_|\___|_|\_\/ |\__,_|\___|_|\_\    ";
cout << "                       |__/                     ";
    //Start Screen End

这是我想要显示的内容,但仍然出现以下错误:

  

对'WinMain @ 16'的未定义引用

我在问是否有办法告诉C ++我只想让它读取和显示文本,而不是使用任何函数。

3 个答案:

答案 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
}

http://coliru.stacked-crooked.com/a/b89a0461ab8cdc97

答案 1 :(得分:13)

您的倒数第二个文字文字中包含多个\个字符。这是一个转义字符,因此要使用文字\字符,必须将其转义为\\,例如:

cout << "|____/|_|\\__,_|\\___|_|\\_\\/ |\\__,_|\\___|_|\\_\\    ";

它在代码中看起来不太好,但在运行应用程序时看起来会很好。

对于引用错误,WinMain()是GUI应用程序的入口点,而main()是控制台应用程序的入口点,所以听起来好像您没有正确创建/配置项目它正在尝试链接到WinMain()而不是main()

答案 2 :(得分:0)

您需要转义反斜杠,而不是一个\有两个\\

这些用于表示字符串文字("\n")中出现的"..."(换行符)等特殊字符。你的Big-Text错过了所有这些换行BTW。

  

对'WinMain @ 16'的未定义引用

显然你正在尝试编译一个GUI项目。检查代码块项目类型。