599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
1

Псевдографика в консоли

11.11.2015, 12:11. Показов 12582. Ответов 25
Метки нет (Все метки)

Доброе время суток!

Ставил значит на днях Boost, через mac port и увидел очень занятную "псевдографику". Сразу захотелось себе ее прикрутить, но вот как написать даже не знаю! Код не прошу просто пните под пятую точку в нужном направлении
Пример во вложении
0
Миниатюры
Псевдографика в консоли  
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2015, 12:11
Ответы с готовыми решениями:

Псевдографика в консоли
по заданию нужно вывести имя файла с размером в рамке, но файл имеет не всегда одинаковый размер...

Псевдографика в консоли
Подскажите пожалуйста как можно методами си реализовывать так сказать рисовку окон и панелей в...

Псевдографика
Нужно создать таблицу размерности n*m с помощью псевдографики. Помогите пожалуйста

Псевдографика на c++
Возникла проблема. Требуется вывести таблицу, шапка которой на русском. Всё бы нормально, но если...

25
Эксперт С++
4974 / 3081 / 456
Регистрация: 10.11.2010
Сообщений: 11,160
Записей в блоге: 10
11.11.2015, 12:45 2
Лучший ответ Сообщение было отмечено Mesteriis как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <windows.h>    // для Sleep
#include <cstdio>
 
void draw_progress_bar( int percents ) {
    int half = percents / 2;
    printf( "\r [" );
    for ( int i = 0; i <    half; ++i ) putc( '#', stdout );
    for ( int i = 0; i < 50-half; ++i ) putc( ' ', stdout );
    printf( "] %3d %%", percents );
    fflush( stdout );
}
 
int main() {
    printf( "\n" );
    for ( int i = 0; i <= 100; ++i ) {
        draw_progress_bar( i );
        Sleep( 100 );
    }
    printf( "\n" );
}
1
Миниатюры
Псевдографика в консоли  
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
11.11.2015, 12:49  [ТС] 3
castaway, а слип у тебя просто для наглядности!? Я правильно понял, иначе просто не успеет отписываться ?
0
Эксперт С++
4974 / 3081 / 456
Регистрация: 10.11.2010
Сообщений: 11,160
Записей в блоге: 10
11.11.2015, 12:51 4
Mesteriis, да. Иначе всё произойдёт слишком быстро.
1
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
11.11.2015, 16:26  [ТС] 5
castaway, а еще вопрос глупый но всеже, а где можно посмотреть таблицу символов которые может терминал выводить?
0
Эксперт С++
4974 / 3081 / 456
Регистрация: 10.11.2010
Сообщений: 11,160
Записей в блоге: 10
11.11.2015, 18:15 6
Mesteriis, увы, но я не знаю..
0
6992 / 6030 / 2738
Регистрация: 14.04.2014
Сообщений: 25,792
11.11.2015, 18:24 7
Цикл создай 0-255 и выведи на экран с номерами. Увидишь.
0
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
11.11.2015, 18:27  [ТС] 8
nmcf, эм туплю, это ты про char?
0
6992 / 6030 / 2738
Регистрация: 14.04.2014
Сообщений: 25,792
11.11.2015, 18:28 9
Да.
0
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
11.11.2015, 18:36  [ТС] 10
nmcf, черт логично же,)))) мерси

Добавлено через 3 минуты
nmcf,
я прям в тупике, это как понимать этот блок
Кликните здесь для просмотра всего текста
Bash
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128 - ?
129 - ?
130 - ?
131 - ?
132 - ?
133 - ?
134 - ?
135 - ?
136 - ?
137 - ?
138 - ?
139 - ?
140 - ?
141 - ?
142 - ?
143 - ?
144 - ?
145 - ?
146 - ?
147 - ?
148 - ?
149 - ?
150 - ?
151 - ?
152 - ?
153 - ?
154 - ?
155 - ?
156 - ?
157 - ?
158 - ?
159 - ?
160 - ?
161 - ?
162 - ?
163 - ?
164 - ?
165 - ?
166 - ?
167 - ?
168 - ?
169 - ?
170 - ?
171 - ?
172 - ?
173 - ?
174 - ?
175 - ?
176 - ?
177 - ?
178 - ?
179 - ?
180 - ?
181 - ?
182 - ?
183 - ?
184 - ?
185 - ?
186 - ?
187 - ?
188 - ?
189 - ?
190 - ?
191 - ?
192 - ?
193 - ?
194 - ?
195 - ?
196 - ?
197 - ?
198 - ?
199 - ?
200 - ?
201 - ?
202 - ?
203 - ?
204 - ?
205 - ?
206 - ?
207 - ?
208 - ?
209 - ?
210 - ?
211 - ?
212 - ?
213 - ?
214 - ?
215 - ?
216 - ?
217 - ?
218 - ?
219 - ?
220 - ?
221 - ?
222 - ?
223 - ?
224 - ?
225 - ?
226 - ?
227 - ?
228 - ?
229 - ?
230 - ?
231 - ?
232 - ?
233 - ?
234 - ?
235 - ?
236 - ?
237 - ?
238 - ?
239 - ?
240 - ?
241 - ?
242 - ?
243 - ?
244 - ?
245 - ?
246 - ?
247 - ?
248 - ?
249 - ?
250 - ?
251 - ?
252 - ?
253 - ?
254 - ?
0
6992 / 6030 / 2738
Регистрация: 14.04.2014
Сообщений: 25,792
11.11.2015, 18:40 11
У тебя не Linux? Там консоль utf8, и так не получится.
0
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
11.11.2015, 19:12  [ТС] 12
Цитата Сообщение от nmcf Посмотреть сообщение
У тебя не Linux?
неа
Цитата Сообщение от Mesteriis Посмотреть сообщение
Пишу на Mac OS X
0
15053 / 8071 / 1941
Регистрация: 30.01.2014
Сообщений: 13,694
11.11.2015, 19:28 13
Mesteriis, для utf8.
Кликните здесь для просмотра всего текста
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
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
 
uint8_t * to_utf8(uint8_t (&utf8)[5], uint32_t ch)
{
    uint8_t * result = utf8;
    if(ch < 0x80)
    {
        *result++ = static_cast<uint8_t>(ch);  
    }
    else if(ch < 0x800)
    {
        *result++ = static_cast<uint8_t>((ch >> 6) | 0xc0);
        *result++ = static_cast<uint8_t>((ch & 0x3f) | 0x80);
    }
    else if(ch < 0x10000) 
    {
        *result++ = static_cast<uint8_t>((ch >> 12) | 0xe0);
        *result++ = static_cast<uint8_t>(((ch >> 6) & 0x3f) | 0x80);
        *result++ = static_cast<uint8_t>((ch & 0x3f) | 0x80);
    }
    else 
    {
        *result++ = static_cast<uint8_t>((ch >> 18) | 0xf0);
        *result++ = static_cast<uint8_t>(((ch >> 12) & 0x3f) | 0x80);
        *result++ = static_cast<uint8_t>(((ch >> 6) & 0x3f) | 0x80);
        *result++ = static_cast<uint8_t>((ch & 0x3f) | 0x80);
    }
    *result = 0;
    return utf8;
}
 
int main()
{
    uint8_t utf8[5];
    uint32_t start = 10000;
    
    for(size_t i = 0; i < 4000; ++i)
    {
        std::cout << to_utf8(utf8, start++) << ' ';
    }
}
Пример тут: http://rextester.com/ADMRM58735
0
6992 / 6030 / 2738
Регистрация: 14.04.2014
Сообщений: 25,792
11.11.2015, 19:44 14
utf8 должна выводить то, что есть в Юникоде. Символы псевдографики там присутствуют где-то.
0
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
11.11.2015, 20:45  [ТС] 15
nmcf, не, таблица символов отличается
0
15053 / 8071 / 1941
Регистрация: 30.01.2014
Сообщений: 13,694
11.11.2015, 20:49 16
Mesteriis, команда
Bash
1
locale
что выдает?
0
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
11.11.2015, 20:52  [ТС] 17
DrOffset,
Bash
1
2
3
4
5
6
7
8
LANG="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_CTYPE="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_ALL=
Добавлено через 1 минуту
Слушайте не потеме но вопрос мелкий
чо за ошибка:

Bash
1
/term/_C++/Sort_Files_term/main.cpp:13: In file included from ../../Sort_Files_term/main.cpp:13:
0
15053 / 8071 / 1941
Регистрация: 30.01.2014
Сообщений: 13,694
11.11.2015, 20:52 18
Mesteriis, таки utf8. Значит код отсюда должен работать.
Задаешь точку отсчета и сколько символов вывести.
0
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
11.11.2015, 20:53  [ТС] 19
Точнее предупреждение" Раньше такого небыло
0
15053 / 8071 / 1941
Регистрация: 30.01.2014
Сообщений: 13,694
11.11.2015, 20:53 20
Цитата Сообщение от Mesteriis Посмотреть сообщение
чо за ошибка
Это не ошибка, а указание места.
Целиком цитируй
Эх, всегда одно и тоже...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.11.2015, 20:53

Помощь в написании контрольных, курсовых и дипломных работ здесь.

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

псевдографика
Помогите. разработать программу, которая выводит на экран геометрическую фигуру, заполняя ее...

Псевдографика
Мне нужно консольное псевдографическое приложение. Функции вроде printf и std::cout выводят...

Псевдографика
Добрый день Может кто-нибудь подсказать, чем пользуются для создания псевдо-графических диалогов в...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.