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

Шлейф из символов в консоли - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Что с программой - когда запускаю, консоль пустая http://www.cyberforum.ru/cpp-beginners/thread455541.html
#include <iostream> #include <vector> #include <algorithm> using namespace std; bool ili_eto_palindrom_ili_net( int chislo ) { bool ok = true; vector < char > agaga;
C++ Помогите переписать программу из Visual C++ в Borland C++ #include "stdio.h" #include "conio.h" #include "windows.h" #include <locale> #define OUTPUT_FILE "./OUTPUT.TXT" #define STRUCT_FILE "./STRUCT.DAT" struct info { http://www.cyberforum.ru/cpp-beginners/thread455533.html
Классы STR с++ C++
Построить класс Str с обязательными полями: длина строки; указатель char* под указатель на динамически выделяемую под строку память; с обязательными методами: конструктор пустой строки (без параметров); конструктор, принимающий С-строку; конструктор, принимающий параметр – символ; конструктор копирования; деструктор; очистка строки;
C++ Банкомат по карте позволяет снимать деньги со счета и / или печатать справку об остатке на счете.
Банкомат по карте позволяет снимать деньги со счета и / или печатать справку об остатке на счете. Информация об остатке на счете сохраняется в файле. Предусмотреть возможность внесения данных в файл, дозапись файла, редактирование данных файла, вывод всей информации из файла на экран
C++ Перевести программу в структуры http://www.cyberforum.ru/cpp-beginners/thread455512.html
Добрый вечер, помогите пожалуйста сделать в программе структуры, препод сказал, что нужны структуры... #include <cstring> #include <string> #include <fstream> #include <iostream> #include <conio.h> #include <malloc.h> using namespace std; void punkt_3(ofstream &fout, ifstream& fin, char *str, char &symbol);
C++ Сортировка массива структур В чем ошибка? Сортировать по полю фамилия. Отдел кадров #include<stdio.h> #include<conio.h> typedef struct vk { char n;//фамилия char i;//Иницыали double r;//god roztdeniya double o;//zarplata подробнее

Показать сообщение отдельно
shadowstar
1 / 1 / 0
Регистрация: 28.02.2012
Сообщений: 20
01.03.2012, 00:40     Шлейф из символов в консоли
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
#include <iostream>
#include <windows.h>
using namespace std;
 
/*void rebuild_snake(COORD *array, int array_count)
{
    for(int i = array_count-1; i >= 1; --i)
        array[i] = array[i-1];
 
}*/
 
void main(){
    HANDLE h=GetStdHandle(STD_OUTPUT_HANDLE); // дескриптор окна
    COORD c; // переменная, отвечающая за координаты в консоли
 
    HANDLE h_in=GetStdHandle(STD_INPUT_HANDLE); // дескриптор окна для работы с мышкой
    SetConsoleMode(h_in,ENABLE_MOUSE_INPUT); // установка режима использования мышки
 
    INPUT_RECORD all_events[256]; // массив событий, произошедших в консоли
    DWORD read_event; // переменная, в которую запишется количество произошедших событий
 
    while(1){
        ReadConsoleInput(h_in,all_events,256,&read_event); // получить все события, произошедшие в консоли
        for(int i=0;i<read_event;i++){ // пройтись по всем событиям
            c.X=all_events[i].Event.MouseEvent.dwMousePosition.X; // запомнить координаты мышки
            c.Y=all_events[i].Event.MouseEvent.dwMousePosition.Y;
 
 
            if(c.X>0 && c.X<80 && c.Y>0 && c.Y<40 &&
                all_events[i].Event.MouseEvent.dwButtonState==FROM_LEFT_1ST_BUTTON_PRESSED){ // если нажата левая кнопка мыши
 
                    SetConsoleCursorPosition(h,c); // установка координат в то место, где курсор
                    SetConsoleTextAttribute(h,9); // установка цвета
 
                    cout<<"@"; // показ нужного символа в нужном месте
            }
 
 
            COORD t={0,0};
            SetConsoleCursorPosition(h,t);
            cout<<"\t";
            SetConsoleCursorPosition(h,t);
            cout<<c.X<<" "<<c.Y; 
 
 
            if(all_events[i].Event.MouseEvent.dwEventFlags==DOUBLE_CLICK){ // если нажата левая кнопка мыши
 
 
                cout<<"@"; // показ нужного символа в нужном месте
            }
        }
    }
}
программа рисует @ в консоли когда нажата левая кнопка мыши.........не могу придумать как можно зделать так чтоб при нажатии кнопки мыши начинал рисоватся шлейф(как в игре змейка) в 20 (число изменяется) символов и хвостик исчезал.........при отпускании кнопки мыши шлейф исчезает))

может подскажет кто с идеями по этому поводу???

Добавлено через 1 час 23 минуты
СПАСИБО за помощь сам написал))))))

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
#include <iostream>
#include <windows.h>
using namespace std;
 
 
const int size = 50; // размер змейки
int Xarray [size];
int Yarray [size];
 
void rebuild_snake(int *_Xarray, int *_Yarray)
{
    for(int i = size - 1; i >= 1; --i)
    {
        Xarray[i] = _Xarray[i-1];
        Yarray[i] = _Yarray[i-1];
    }
}
 
void main()
{
 
    system("mode con cols=80 lines=40");
 
    HANDLE h=GetStdHandle(STD_OUTPUT_HANDLE); // дескриптор окна
    COORD c; // переменная, отвечающая за координаты в консоли
 
    int counter = 0;;
 
    COORD XY = {0,0};
 
    HANDLE h_in=GetStdHandle(STD_INPUT_HANDLE); // дескриптор окна для работы с мышкой
    SetConsoleMode(h_in,ENABLE_MOUSE_INPUT); // установка режима использования мышки
 
    INPUT_RECORD all_events[256]; // массив событий, произошедших в консоли
    DWORD read_event; // переменная, в которую запишется количество произошедших событий
 
    while(1){
        ReadConsoleInput(h_in,all_events,256,&read_event); // получить все события, произошедшие в консоли
        for(int i=0;i<read_event;i++){ // пройтись по всем событиям
            c.X=all_events[i].Event.MouseEvent.dwMousePosition.X; // запомнить координаты мышки
            c.Y=all_events[i].Event.MouseEvent.dwMousePosition.Y;
 
 
            if(c.X>0 && c.X<80 && c.Y>0 && c.Y<40 &&
                all_events[i].Event.MouseEvent.dwButtonState==FROM_LEFT_1ST_BUTTON_PRESSED){ // если нажата левая кнопка мыши
 
                    SetConsoleCursorPosition(h,c); // установка координат в то место, где курсор
                    SetConsoleTextAttribute(h,9); // установка цвета
 
                    cout<<"@"; // показ нужного символа в нужном месте
 
                    rebuild_snake (Xarray, Yarray);
 
                    Xarray[i] = c.X;
                    Yarray[i] = c.Y;
 
                    XY.X = Xarray[size - 1];
                    XY.Y = Yarray[size - 1];
                    SetConsoleCursorPosition(h,XY);
 
                    cout << " " ;
 
            }
 
            COORD t={0,0};
            SetConsoleCursorPosition(h,t);
            cout<<"\t";
            SetConsoleCursorPosition(h,t);
            cout<<c.X<<" "<<c.Y; 
 
 
            if(all_events[i].Event.MouseEvent.dwEventFlags==DOUBLE_CLICK){ // если нажата левая кнопка мыши
 
 
                cout<<"@"; // показ нужного символа в нужном месте
            }
        }
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru