基本上我要做的就是一个控制台程序,它必须读取我正在键入的每个字符,并且必须在键入时将每个字符存储在链表中。但是,如果执行退格键,则在执行时必须从结构中删除该字符。
有没有办法或功能来做到这一点?我正在使用Windows。
您可以在窗口下使用conio.h
。您只需在while
循环中读取和处理任何键盘输入。下面是一个简单的示例:
#include <conio.h>
#include <iostream>
#include <list>
int main()
{
std::list<char> myChars; // to store what your chars
std::cout << "START WRITING: ";
while(true)
{
// read the character and perform some logic
char val = _getch();
if (static_cast<int>(val) == 8) // backspace: pop_back
{
myChars.pop_back();
std::cout << "b" << " " << "b";
/* no idea how to go up to the previous line in a console :( */
}
else if (static_cast<int>(val) == 13) // enter/return: new line
{
myChars.push_back('n');
std::cout << "n";
}
else if (static_cast<int>(val) == 27) // escape: exit
{
break;
}
else // push_back
{
myChars.push_back(val);
std::cout << val;
}
}