#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...!
}
}
所以我希望这个程序在第一行输出一个数字,它在不停止的情况下递增,如果你点击任何一个键,它应该在一个第二行中输出该键的值,所以我希望它输出这样的东西 - &GT;
45
CHAR: 97
并且在您按下某个键后,递增的数字应该保留在第一行。如果你击中了几个键,那么第二个cout应该被覆盖,但是这对我来说似乎不起作用,如果我点击几个键,我的输出看起来像这样 - &gt;
10
12AR: 97
20AR: 96
我的问题是我的第一个cout(递增的数字)覆盖了我的第二个(或者我的第二个我不知道的第一个),然后这个数量为每一行! :(
答案 0 :(得分:0)
我建议你使用名为gotoxy()的windows函数。您可以使用
应用此功能SetConsoleCursorPosition();
这个函数在windows.h库中是可用的。 可以在这里阅读更多相关信息: Link