Ascii Art в C++

Итак, я пытаюсь вставить Ascii Art в программу на C++ и сделал это, вручную распечатав каждую строку, но результат был совсем не похож на ascii art. Это как: введите здесь описание изображения Это происходит из-за того, что символы не распознаются подсказкой или я сделал это неправильно. Вот искусство ASCII, которое я пытаюсь сделать:

_____/\\\\\\\\\________/\\\\\\\\\\\__________/\\\\\\\\\__/\\\\\\\\\\\__/\\\\\\\\\\\_        
 ___/\\\\\\\\\\\\\____/\\\/////////\\\_____/\\\////////__\/////\\\///__\/////\\\///__       
  __/\\\/////////\\\__\//\\\______\///____/\\\/_______________\/\\\_________\/\\\_____      
   _\/\\\_______\/\\\___\////\\\__________/\\\_________________\/\\\_________\/\\\_____     
    _\/\\\\\\\\\\\\\\\______\////\\\______\/\\\_________________\/\\\_________\/\\\_____    
     _\/\\\/////////\\\_________\////\\\___\//\\\________________\/\\\_________\/\\\_____   
      _\/\\\_______\/\\\__/\\\______\//\\\___\///\\\______________\/\\\_________\/\\\_____  
       _\/\\\_______\/\\\_\///\\\\\\\\\\\/______\////\\\\\\\\\__/\\\\\\\\\\\__/\\\\\\\\\\\_ 
        _\///________\///____\///////////___________\/////////__\///////////__\///////////__

Код:

                cout << "_____/\\\\\\\\\________/\\\\\\\\\\\__________/\\\\\\\\\__/\\\\\\\\\\\__/\\\\\\\\\\\_        \n";
                cout << " ___/\\\\\\\\\\\\\____/\\\/////////\\\_____/\\\////////__\/////\\\///__\/////\\\///__       \n";
                cout << "  __/\\\/////////\\\__\//\\\______\///____/\\\/_______________\/\\\_________\/\\\_____      \n";
                cout << "  _\/\\\_______\/\\\___\////\\\__________/\\\_________________\/\\\_________\/\\\_____     \n";
                cout << "    _\/\\\\\\\\\\\\\\\______\////\\\______\/\\\_________________\/\\\_________\/\\\_____    \n";
                cout << "    _\/\\\/////////\\\_________\////\\\___\//\\\________________\/\\\_________\/\\\_____   \n";
                cout << "      _\/\\\_______\/\\\__/\\\______\//\\\___\///\\\______________\/\\\_________\/\\\_____  \n";
                cout << "       _\///________\///____\///////////___________\/////////__\///////////__\///////////__\n";

person James    schedule 11.06.2016    source источник
comment
Покажите код, отвечающий за печать   -  person Maxim Blinov    schedule 11.06.2016
comment
Это буквально cout ‹‹ ASCII LINE \n; для всех строк   -  person James    schedule 11.06.2016
comment
вам не хватает начальных пробелов, и ваши строки ломаются, кажется, это легко исправить, если бы вы действительно могли видеть код   -  person Leeor    schedule 11.06.2016
comment
Я думаю, что использование cout << "blablabla" << endl; вместо cout << "blablabla\n"; тоже должно сработать... трудно сказать, какой тип endl использует ваш iostream (я не использую его десятилетиями), но моя ставка - "\r\n"...   -  person Spektre    schedule 16.03.2017


Ответы (1)


экранирующие последовательности интерпретируются как одиночные специальные или другие символы, отсюда и странный вывод. "\\" означает, например, '\'.

Вы можете использовать необработанный строковый литерал:

#include <iostream>

int main()
{
    std::cout << R"(
_____/\\\\\\\\\________/\\\\\\\\\\\__________/\\\\\\\\\__/\\\\\\\\\\\__/\\\\\\\\\\\_        
 ___/\\\\\\\\\\\\\____/\\\/////////\\\_____/\\\////////__\/////\\\///__\/////\\\///__       
  __/\\\/////////\\\__\//\\\______\///____/\\\/_______________\/\\\_________\/\\\_____      
   _\/\\\_______\/\\\___\////\\\__________/\\\_________________\/\\\_________\/\\\_____     
    _\/\\\\\\\\\\\\\\\______\////\\\______\/\\\_________________\/\\\_________\/\\\_____    
     _\/\\\/////////\\\_________\////\\\___\//\\\________________\/\\\_________\/\\\_____   
      _\/\\\_______\/\\\__/\\\______\//\\\___\///\\\______________\/\\\_________\/\\\_____  
       _\/\\\_______\/\\\_\///\\\\\\\\\\\/______\////\\\\\\\\\__/\\\\\\\\\\\__/\\\\\\\\\\\_ 
        _\///________\///____\///////////___________\/////////__\///////////__\///////////__        
)" << '\n';

    return 0;
}

демонстрация

person wally    schedule 11.06.2016