Мой код:
#include <iostream>
#include <windows.h>
using namespace std;
int pos[9];
int main() {
printf(" %c ║ %c ║ %c ", pos[0], pos[1], pos[2]);
printf("═══╬═══╬═══");
printf(" %c ║ %c ║ %c "), pos[3], pos[4], pos[5];
printf("═══╬═══╬═══");
printf(" %c ║ %c ║ %c "), pos[6], pos[7], pos[8];
system("pause");
}
Мой консольный вывод:
Я знаю, что есть и другие способы сделать это, но цель заключалась в том, чтобы добиться этого с помощью printf: | Есть идеи?
Использовать printf
и при условии, что вы используете локализованную в США Windows с консольной кодовой страницей 437 (запустите chcp
проверить), тогда следующий исправленный код будет работать, если вы сохраните исходный файл на кодовой странице 437. Один из способов сделать это — использовать Notepad ++ и установить Encoding->Character sets->Western European->OEM-US
в меню. Недостатком этого является то, что ваш исходный код не будет хорошо отображаться в большинстве редакторов, если они специально не поддерживают cp437, и даже Notepad ++ не будет отображать его правильно при повторном открытии файла без повторной установки кодировки.
#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <fcntl.h>
int main()
{
char pos[9] = {'X','O','X','O','X','O','X','O','X'};
printf(" %c ║ %c ║ %c \n", pos[0], pos[1], pos[2]);
printf("═══╬═══╬═══\n");
printf(" %c ║ %c ║ %c \n", pos[3], pos[4], pos[5]);
printf("═══╬═══╬═══\n");
printf(" %c ║ %c ║ %c \n", pos[6], pos[7], pos[8]);
system("pause"); system("pause");
}
В Windows, поскольку API изначально UTF-16, лучше использовать следующий код и сохранить файл в UTF-8 с BOM:
#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <fcntl.h>
int main()
{
char pos[9] = {'X','O','X','O','X','O','X','O','X'};
_setmode(_fileno(stdout), _O_U16TEXT);
wprintf(L" %C ║ %C ║ %C \n", pos[0], pos[1], pos[2]);
wprintf(L"═══╬═══╬═══\n");
wprintf(L" %C ║ %C ║ %C \n", pos[3], pos[4], pos[5]);
wprintf(L"═══╬═══╬═══\n");
wprintf(L" %C ║ %C ║ %C \n", pos[6], pos[7], pos[8]);
system("pause");
}
Вывод (оба случая):
X ║ O ║ X
═══╬═══╬═══
O ║ X ║ O
═══╬═══╬═══
X ║ O ║ X
Press any key to continue . . .
Других решений пока нет …