Вывод на печать рядом с вводом после нажатия Enter - PullRequest
1 голос
/ 02 октября 2019

Я пытаюсь создать программу, которая отображает длину слова введенного слова.

Вот как это будет выглядеть:

Word   Length
Come      4
Again     5
Hair      4
The       3

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

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

Спасибо!

string words[4];
int wlength[4];
cout <<"word        length" <<endl;
cout << endl;
cout << "";
cin >> words[0];
wlength[0] = words[0].length();
cout << wlength[0] <<endl;
cout << "";
cin >> words[1];
wlength[1] = words[1].length();
cout << wlength[1] << endl;
cout << "";
cin >> words[2];
wlength[2] = words[2].length();
cout << wlength[2] << endl;
cout << "";
cin >> words[3];
wlength[3] = words[3].length();
cout << wlength[3] << endl;

Фактический результат:

Word  Length
Come
4
Again
5
Hair
4
The
3

1 Ответ

0 голосов
/ 02 октября 2019

Это будет делать то, что вы хотите, хотя вы не можете легко вернуться назад, вы МОЖЕТЕ очистить всю консоль и снова распечатать все. Моя реализация будет работать с более чем 4 словами тоже.

#include <iostream>
#include <string>
#include <vector>
int main()
{
    std::vector<std::string> words;
    for (;;)
    {
        std::cout << "Word\t\tLength\n";
        for (auto& word : words)
            std::cout << word << "\t\t" << word.length() << "\n";

        std::string newWord;
        std::cin >> newWord;
        words.push_back(newWord);
        system("cls");
    }

    std::getchar();
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...