Как я могу сделать второй cout, не разрушая мой первый в этой программе?

#include "stdafx.h"#include "iostream"#include "thread"#include "conio.h"#include "windows.h"using namespace std;

void incrm();
void charget();

void main() {
thread count(incrm);
thread getcin(charget);

count.join();
getcin.join();

cin.get();
}

void incrm() {
int j = 0;    // used to increment and output
while (true) {
cout << "\r" << j;    // outputs 1,2,3,4... and so on
j++;
Sleep(150);
}
cout << endl;
}

void charget() {
while (true) {
int i = getch();    // gets value of char
cout << "\r\nCHAR: " << i;  // and here is the problem...!
}
}

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

45
CHAR: 97

и после того, как вы нажмете клавишу, увеличивающийся номер должен остаться в первой строке. Если вы нажмете несколько клавиш, второй cout должен быть перезаписан, но мне кажется, это не сработает, мой вывод будет выглядеть так, если я нажму несколько клавиш->

10
12AR: 97
20AR: 96

Моя проблема в том, что мой первый cout (увеличивающийся номер) перезаписывает мой второй (или мой второй мой первый, которого я действительно не знаю), а затем этот счетчик для каждой строки! 🙁

0

Решение

Я предлагаю вам использовать функцию Windows под названием gotoxy (). Вы можете применить это, используя

SetConsoleCursorPosition();

эта функция доступна в библиотеке windows.h.
Подробнее об этом можно прочитать здесь:
Ссылка на сайт

0

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector