Есть ли способ читать текст в режиме реального времени с помощью C ++? - PullRequest
2 голосов
/ 10 февраля 2020

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

Есть ли способ или функция для этого? Я использую Windows.

1 Ответ

0 голосов
/ 10 февраля 2020

Вы можете использовать conio.h под windows. Вы просто прочитали бы и обработали любой ввод с клавиатуры в while l oop. Вот простой пример:

#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;
        }
    }
...