9

Как вывести с помощью std::cout << ("") << std::endl; галочку на экран.

Insider
  • 2,224

3 Answers3

7

Мой искренний совет: поскольку вывод на консоль зависит от массы факторов - широкие символы используются или нет, кодировка и т.п. - не заморачивайтесь, а воспользуйтесь чем-то похожим. Ну кой смысл в консоли эту красоту наводить? :)

Выведите какую-нибудь v, которая везде будет одинакова - ведь вряд ли вы ее с буквой перепутаете.

Harry
  • 221,325
  • Ну, консоль, это только для теста... а так, все будет выводится в PDF файле :) – Insider Sep 28 '16 at 14:12
  • Ну, для теста точно сойдет :) Как вам вариант - [v] или [ ]? – Harry Sep 28 '16 at 14:13
  • Тоже не плохо, нужно будет подумать :) – Insider Sep 28 '16 at 14:18
4

Галочка может быть представлена Unicode символом ✓(U+2713). В этом случае ваш вопрос сводится: «как вывести Юникод на экран в c++», что может зависеть от платформы.

На Windows, чтобы произвольные символы выводить в консоль, не смотря на текущую codepage, можно использовать WriteConsoleW() API или эквивалент (_O_U16TEXT режим и wprintf() c wchar_t строками, см. Как отобразить русский текст?). Необходимо выставить шрифт в консоли, который способен отображать. Ковыряние с locale или SetConsoleOutputCP() не помогут с Unicode в общем случае.

На других системах, можно просто utf-8 выводить (предполагая, что терминал использует utf-8), например в c++11:

cout << u8"\u2713";

Можно boost::nowide::cout использовать для переносимости: utf-8 строки автоматически декодируются и используется WriteConsoleW() за кадром, если необходимо.

jfs
  • 52,361
3

Например так:

cout <<  "\u2713" <<endl;

Или другие галочки по ссылке: Галочка

iksuy
  • 10,475
  • 1
    Почти наверняка это не будет работать в Windows консоли. Какая кодировка у "\u2713" строки получается? (зависит ли она от компилятора? настроек IDE?) – jfs Sep 28 '16 at 14:47