Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/48: Рейтинг темы: голосов - 48, средняя оценка - 4.54
1 / 1 / 0
Регистрация: 28.06.2012
Сообщений: 6

Рисование кодами ASCII

14.07.2012, 21:28. Показов 10837. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
*очередной новичок входит в великий мир С++
Итак, проблема собственно проста. Идея заключается в отрисовке прямоугольничка с использованием ASCII кодов символов. Код следующий:
C++
1
2
3
4
char ch1[]={218,196,196,196,196,196,196,196,196,191};
char ch2[]={179,255,255,255,255,255,255,255,255,179};
char ch3[]={192,196,196,196,196,196,196,196,196,217};
cout<<ch1[10]<<"\n"<<ch2[10]<<"\n"<<ch3[10]<<"\n";
Результат виден на 1-ом скрине. Хотя при выводе кодов по отдельности правильные символы - уголки, черточки, палочки - скрин 2. Где закралась ошибка? Или что-то нужно подключить для корректного отображения символов?
Миниатюры
Рисование кодами ASCII   Рисование кодами ASCII  
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.07.2012, 21:28
Ответы с готовыми решениями:

Рисование ASCII кодами и русский текст в консоли
Всем добрый вечер. И вот такой вопрос есть. Сначала печатаю в консоли текст а под ним горизонтальную линию. Только вместо линии...

Нарисовать изображение ASCII кодами
Написать программу, которая рисует изображение, используя ASCII таблицы (ASCII код). Заранее благодарен

Написать программу выводящую символы ASCII с заданными кодами
Ввести в консоли строку из пяти символов, а затем произвести над каждым символом операцию побитового НЕ (NOT – в C++ !) со вторым операндом...

15
13 / 13 / 7
Регистрация: 19.05.2012
Сообщений: 46
14.07.2012, 22:22
Ну ты же выводишь только последние элементы массивов.

Добавлено через 21 минуту
Блин не заметил сначала, нумерация массивов с 0 начинается
C++
1
cout<<ch1[9]<<"\n"<<ch2[9]<<"\n"<<ch3[9]<<"\n";
1
1 / 1 / 0
Регистрация: 28.06.2012
Сообщений: 6
14.07.2012, 22:28  [ТС]
Благодарю, исправился. Результат все равно немного не тот, чего я ожидал.
C++
1
cout<<ch1<<"\n"<<ch2<<"\n"<<ch3<<"\n"
Миниатюры
Рисование кодами ASCII  
0
13 / 13 / 7
Регистрация: 19.05.2012
Сообщений: 46
14.07.2012, 22:38
а полный код можешь выложить?
0
1 / 1 / 0
Регистрация: 28.06.2012
Сообщений: 6
14.07.2012, 22:46  [ТС]
Да это собственно и есть весь код
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <time.h>
#include <Windows.h>
#include <stdlib.h>
using namespace std;
void main()         
{
    char ch1[]={218,196,196,196,196,196,196,196,196,196,191};
    char ch2[]={179,255,255,255,255,255,255,255,255,255,179};
    char ch3[]={192,196,196,196,196,196,196,196,196,196,217};
    cout<<ch1<<"\n"<<ch2<<"\n"<<ch3<<"\n";
}
0
13 / 13 / 7
Регистрация: 19.05.2012
Сообщений: 46
14.07.2012, 22:57
Странно у меня нормально выводит. Что за компилятор?
0
 Аватар для Intel~lect
137 / 126 / 14
Регистрация: 03.07.2012
Сообщений: 355
14.07.2012, 22:59
Это чтобы нарисовать то можно по всем массивм пройтись и каждый код вывести на экран
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <windows.h>
 
using namespace std;
 
int main()
{
    char ch1[]={218,196,196,196,196,196,196,196,196,191};
    char ch2[]={179,255,255,255,255,255,255,255,255,179};
    char ch3[]={192,196,196,196,196,196,196,196,196,217};
    int i;
 
    for (i=0; i<9; i++)
        cout << ch1[i];
    cout << endl;
 
    for (i=0; i<9; i++)
        cout << ch2[i];
    cout << endl;
 
 
    for (i=0; i<9; i++)
        cout << ch3[i];
    cout << endl;
 
 
    cout << endl << endl;
    system("pause");
    return 0;
}
Или вот еще что. В конце каждого массива поставьте нолик.
C++
1
2
3
    char ch1[]={218,196,196,196,196,196,196,196,196,191,0};
    char ch2[]={179,255,255,255,255,255,255,255,255,179,0};
    char ch3[]={192,196,196,196,196,196,196,196,196,217,0};
Миниатюры
Рисование кодами ASCII  
1
13 / 13 / 7
Регистрация: 19.05.2012
Сообщений: 46
14.07.2012, 23:01
В данном случае не обязательно массив из "char" -это строка по сути.
1
1 / 1 / 0
Регистрация: 28.06.2012
Сообщений: 6
14.07.2012, 23:06  [ТС]
MS Visual Studio 11. Массивом-то да, но я хотел как можно проще и меньше кода =) По идее все правильно и должно бы работать, но не работает, поэтому собсно и пишу тут )
0
13 / 13 / 7
Регистрация: 19.05.2012
Сообщений: 46
14.07.2012, 23:09
Вот у меня твой код:
Миниатюры
Рисование кодами ASCII  
0
 Аватар для Intel~lect
137 / 126 / 14
Регистрация: 03.07.2012
Сообщений: 355
14.07.2012, 23:11
alexelev, Попробуй в каждом массиве в конце поставить нули. У меня тоже без них не работала. А когда поставил то все нормально стало. Четырехугольник печатает
Миниатюры
Рисование кодами ASCII  
1
1 / 1 / 0
Регистрация: 28.06.2012
Сообщений: 6
14.07.2012, 23:13  [ТС]
значит, проблема не в коде, спс
да, 0 в конце каждой строки решил проблему, прямоугольничек ровненький вышел
0
 Аватар для Intel~lect
137 / 126 / 14
Регистрация: 03.07.2012
Сообщений: 355
14.07.2012, 23:32
Еще можно сделать что внутри этого прямоугольника какое-нибудь слово будет написано.
C++
1
2
3
4
5
6
7
    char ch1[]={218,196,196,196,196,196,196,196,196,196,196,196,196,191,0};
    char ch2[]={179,'H','e','l','l','o',',',' ','W','o','r','l','d',179,0};
    char ch3[]={192,196,196,196,196,196,196,196,196,196,196,196,196,217,0};
 
   cout << ch1 << endl
        << ch2 << endl
        << ch3 << endl;
0
1 / 1 / 0
Регистрация: 28.06.2012
Сообщений: 6
16.07.2012, 18:09  [ТС]
дабы не плодить одинаковых тем продолжу сюда.
Следующий животрепещущий вопрос: как полученный прямоугольник закрасить цветом? Т.е как изменить цвет ячейки, в моем случае элемента массива?
0
63 / 62 / 6
Регистрация: 02.09.2008
Сообщений: 181
17.07.2012, 10:05
Функция SetConsoleTextAttribute устанавливает атрибуты символов, записанных в экранный буфер консоли
http://www.vsokovikov.narod.ru... ribute.htm
0
17.07.2012, 11:43

Не по теме:

Помнится я ASCII кодами вот такое рисовал (моя первая программа:))
Вложение 24562

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.07.2012, 11:43
Помогаю со студенческими работами здесь

Написать программу выводящую символы ASCII с заданными кодами
Прочитать из текстового файла символы, прибавить к их кодам 3, вывести новые символы в текстовый файл

Написать программу выводящую символы ASCII с заданными кодами
Ввести в консоли строку из пяти прописных латинских символов, преобразовать их в соответствующие строчные символы с помощью преобразование...

Сформировать строку, считая числа начальной строки соответствующими ASCII-кодами символов результирующей строки
Доброго времени суток! Прошу помощи. Дана строка в виде последовательности разделенных запятыми натуральных чисел 32 ... 255....

Подключить ASCII кодировку (рисование рамок в консоли)
Добрый день! Пишу в VS'13. Проект: Консольное приложение Win32 Есть такая проблема. Хочется использовать символы для рисования рамок...

Непонятка с кодами кириллических символов
Писал программу для перевода символов в верхний регистр. Для латиницы она работает, но странно ведет себя с кирилицей. Собственно код: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru