Форум программистов, компьютерный форум CyberForum.ru

Прописывание параметра CONOUT$ в hConsole - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывести шестнадцатеричное представление десятичного числа http://www.cyberforum.ru/cpp-beginners/thread1624131.html
Функция выводит на печать шестнадцатеричное представление десятичного числа.(использовать двоичные операции)
C++ Организовать работу функции так, чтобы программа не дожидалась окончания её выполнения (многопоточность) Всем привет. Только начинаю применять многопоточность. В нижеследующем коде нужно организовать таким образом, чтобы программа не дожидалась окончания функции LongFunc, а продолжала свою работу далее. Т.е. сейчас программа выводит только результат, а нужно чтобы пока результат не готов выводилось BlaBlaBla. Причём весь код для многопоточности нужно заключить внутрь класса A. Как бы это сделать?... http://www.cyberforum.ru/cpp-beginners/thread1624095.html
C++ Нужно разбить программу на функции
Помогите, пожалуйста. #include <iostream> #include <iomanip> /* Написать функцию, проверяющую есть ли отрицательные элементы в указанной строке двумерного массива. Удалить из массива все строки с отрицательными элементами, удаленная строка заполняется 0 и переносится в конец массива. */
C++ Сравнить два подмножества в матрице
подскажите пжл как сравнить 2 подмножества в матрице
C++ Для каждой строки таблицы поменять местами соседние элементы http://www.cyberforum.ru/cpp-beginners/thread1624036.html
Написать консольную программу, выполняющую следующие действия: 1. Обеспечить получение параметров программы, записанных на русском языке. 2. Обеспечить вывод диагностических сообщений на русском языке. 3. Проверить число параметров при выводе программы, учитывая, что программа получает имена двух файлов – файла с исходными данными и файла с результатами расчета. При ошибочном числе параметров...
C++ Доработка программы для новичка Господа форумчане, прошу у вас помощи, т.к. не понимаю суть задания. Вот собственно задание: Написать программу, позволяющую вводить матрицу M на N. Необходимо с помощью функции получить массив B, присвоив его k-ому элементу значение 0, если все элементы k-ого столбца матрицы нулевые, и значение 1 - в противном случае. Написал только часть программы, где создается матрица, а вот дальше не... подробнее

Показать сообщение отдельно
Vyasheslav
0 / 0 / 0
Регистрация: 23.12.2015
Сообщений: 4
24.12.2015, 14:34  [ТС]     Прописывание параметра CONOUT$ в hConsole
Пробовал добавлять, выходит другая ошибка, которой при первичной компиляции нет.
C++
1
2
3
4
5
6
7
void clear_screen()
{
    set_cursor_pos(1, 25);
    for (int j = 0; j < 25; j++)
    putch('\n');
    set_cursor_pos(1, 1);
}
error C4996: 'putch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _putch. See online help for details.

Добавлено через 19 минут
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
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
#include "msoftcon.h"
HANDLE hConsole;
char fill_char;
 
void init_graphics()
{
    COORD console_size = { 80, 25 };
    hConsole = CreateFile(L"CONOUT$", GENERIC_WRITE | GENERIC_READ,
        FILE_SHARE_READ | FILE_SHARE_WRITE,
        0L, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0L);
 
 
    SetConsoleScreenBufferSize(hConsole, console_size);
    SetConsoleTextAttribute(hConsole, (WORD)((0 << 4) | 15));
 
    fill_char = '\xBB';
    clear_screen();
}
 
void set_color(color foreground, color background)
{
    SetConsoleTextAttribute(hConsole, (WORD)((background << 14) | foreground));
}
 
void set_cursor_pos(int x, int y)
{
    COORD cursor_pos;
    cursor_pos.X = x - 1;
    cursor_pos.Y = y - 1;
    SetConsoleCursorPosition(hConsole, cursor_pos);
}
 
void clear_screen()
{
    set_cursor_pos(1, 25);
    for (int j = 0; j < 25; j++)
    _putch('\n');
    set_cursor_pos(1, 1);
}
 
void wait(int milliseconds)
{
    Sleep(milliseconds);
}
 
void clear_line()
{
    cputs ("                                                                           ");
    cputs ("                                                                           ");
}
 
void draw_rectangle(int left, int top, int right, int bottom)
{
    char temp[80];
    char j;
    int width = right - left + 1;
    for (int j = 0; j < width; j++)
    temp[j] = fill_char;
    temp[j] = 0;
 
    for (int y = top; y <= bottom; y++)
    {
        set_cursor_pos(left, y);
        cputs(temp);
    }
}
 
void draw_circle(int xC, int yC, int radius)
{
    double theta, increment, xF, pi = 3.14159;
    int x, xN, yN;
 
    increment = 0.8 / static_cast<double>(radius);
    for (theta = 0; theta <= pi / 2; theta += increment)
    {
        xF = radius * cos(theta);
        xN = static_cast<int>(xF * 2 / 1);
        yN = static_cast<int>(radius * sin(theta) + 0.5);
        x = xC - xN;
        while (x <= xC + xN)
        {
            set_cursor_pos(x, yC - yN); putch(fill_char);
            set_cursor_pos(x++, yC + yN); putch(fill_char);
        }
    }
 
}
 
void draw_line(int x1, int y1, int x2, int y2)
{
    int w, z, t, w1, w2, z1, z2;
    double xDelta = x1 - x2, yDelta = y1 - y2, slope;
    bool isMoreHoriz;
 
    if (fabs(xDelta) > fabs(yDelta))
    {
        isMoreHoriz = true;
        slope = yDelta / xDelta;
        w1 = x1; z1 = y1; w2 = x2; z2 = y2;
    }
    else
    {
        isMoreHoriz = false;
        slope = xDelta / yDelta;
        w1 = y1; z1 = x1; w2 = y2; z2 = x2;
    }
    if (w1 > w2)
    {
        t = w1; w1 = w2; w2 = t;
        t = z1; z1 = z2; z2 = t;
    }
 
    for (w = w1; w1 <= w2; w++)
    {
        z = static_cast<int>(z1 + slope * (w - w1));
        if (!(w == 80 && z == 25))
        {
            if (isMoreHoriz)
                set_cursor_pos(w, z);
            else
                set_cursor_pos(z, w);
            _putch(fill_char);
        }
    }
}
 
void draw_pyramid(int x1, int y1, int height)
{
    int x, y;
    for (y = y1; y < y1 + height; y++)
    {
        int incr = y - y1;
        for (x = x1 - incr; x <= x1 + incr; x++)
        {
            set_cursor_pos(x, y);
            putch(fill_char);
        }
    }
}
 
void set_fill_style(fstyle fs)
{
    switch (fs)
    {
    case SOLID_FILL:  fill_char = '\xDB'; break;
    case DARK_FILL:   fill_char = '\xB0'; break;
    case MEDIUM_FILL: fill_char = '\xB1'; break;
    case LIGHT_FILL:  fill_char = '\xB2'; break;
    case X_FILL:  fill_char = 'X'; break;
    case O_FILL:  fill_char = 'O'; break;
    }
}
Добавлено через 33 секунды
Полный кода программы.
 
Текущее время: 11:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru