Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 24.04.2019
Сообщений: 5
1

Прокрутка консоли

24.04.2019, 23:05. Показов 1994. Ответов 1
Метки нет (Все метки)

Пишу в VS с CLR и столкнулся с такой проблемой. Когда в консоли заканчивается место для записи, мне выдает ошибку, что не хватает строк для вывода. Как сделать прокрутку? Код на вывод простенькой диаграммы
void Create_Chart(struct AccountData *User)
{
struct sp *nt;
int len, i, NColor;
int max = 10000;
char str1[30];
char str2[30];

System::ConsoleColor Color;
Console::ForegroundColor = ConsoleColor::Black;
Console::BackgroundColor = ConsoleColor::Gray;
Console::Clear();

if (!spisok)
for (i = 0; i < count; i++)
Insert_Unit(User, User[i].nickname);

Color = ConsoleColor::Black;
for (nt = spisok, i = 0; nt != 0; nt = nt->sled, i=i+2)
{
sprintf(str1, "%s", nt->nickname);
sprintf(str2, "%3.1d%%", (nt->scores*100 / max));
Console::ForegroundColor = ConsoleColor::Black;
Console::BackgroundColor = ConsoleColor::Gray;
Console::CursorLeft = 5; Console::CursorTop = i + 1;
printf(str1);
Console::CursorLeft = 20;
printf("%s", str2);
Console::BackgroundColor = ConsoleColor::Blue;
Console::CursorLeft = 30;
for (len = 0; len < nt->scores*100 / max; len++) printf(" ");
}
getch();
return;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.04.2019, 23:05
Ответы с готовыми решениями:

Клавиши F1-F12 в консоли, и работа с мышкой в консоли
Я искал на сайте, но не нашел упоминания о том как обрабатывать и или узнавать где находится курсор...

считывание с консоли ( не с клавы, а именно с консоли)
нужно написать функцию которая возвращает string в котором написано 500 символов которые были...

Реализация кроссфплатформенности консоли, разрешение консоли
Можно ли как-то реализовать просчёт количества пикселей экрана? Просто есть вот такая программа,...

Прокрутка консоли
Мне дали задание написать клиент-серверное консольное приложение под винду и линукс, что то типа...

1
Just Do It!
3072 / 1677 / 581
Регистрация: 23.09.2014
Сообщений: 5,224
25.04.2019, 08:52 2
Цитата Сообщение от spice_cream Посмотреть сообщение
Как сделать прокрутку?
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
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
#include <windows.h>
#include "conio.h"
 
 
using namespace System;
 
///----------------------------------------------------------------------------|
/// Скролл есть, но не весь.
///----------------------------------------------------------------------------|
void Test01()
{   Console::Clear();
    Console::BackgroundColor = ConsoleColor::Blue;
    for (int i = 0; i < 1000; i++)
    {
        Console::WriteLine(i);
    }
    getch();
    return;
} 
 
///----------------------------------------------------------------------------|
/// Бах-бах, скрола изрешетили.
///----------------------------------------------------------------------------|
void Test02()
{
    system("mode 120,50");
    
    Console::Clear();
    Console::BackgroundColor = ConsoleColor::Red;
    for (int i = 0; i < 1000; i++)
    {
        Console::WriteLine(i);
    }
    getch();
    return;
}
 
///----------------------------------------------------------------------------|
/// Исправляем скроллинг. есть и скролл и весь ролл.
///----------------------------------------------------------------------------|
void Test03()
{
    system("mode 120,50");
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    HANDLE hConsole=GetStdHandle(STD_OUTPUT_HANDLE);
    GetConsoleScreenBufferInfo(hConsole,&csbi);
    csbi.dwSize.Y=1000;//10000 строк
    SetConsoleScreenBufferSize(hConsole,csbi.dwSize);
 
 
    Console::Clear();
    Console::BackgroundColor = ConsoleColor::Green;
    for (int i = 0; i < 1000; i++)
    {
        Console::WriteLine(i);
    }
    getch();
    return;
} 
 
int main()
{   Test01();
    Test02();
    Test03();
 
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2019, 08:52

Прокрутка консоли клавиатурой
Подскажите пожалуйста, как прокручивать консоль с помощью клавиатуры?

Параллельная вертикальная прокрутка двух блоков и отдельная горизонтальная прокрутка одного из двух блоков
Всем привет! Помогите решить проблему, пожалуйста. Есть блок div, внутри которого два блока div (в...

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

Как запустить программу из консоли без блокировки консоли?
Вводу например firefox в консоль открывается приложение и в консоль больше ничего ввести нельзя...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru