Как прочитать весь текст в строке, начинающейся на этой строке? - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь прочитать чье-то полное имя в C ++, и очевидно, что в нем будут пробелы (например, «Джон Доу»).Самый простой способ, которым я могу сделать это (так как cin по умолчанию разрывается на пробел), с getline(cin, str), где «str» - переменная.

Однако, при этом он начинает читать текст на следующемлиния.Вместо этого:

Пожалуйста, введите ваше полное имя> Джон Доу

Вы получите

Пожалуйста, введите ваше полное имя>

Джон Доу

Вот код, который дает результат:

string fullName;
cout << "Please enter your full name >";
getline(cin, fullName);

Можно ли как-нибудь прочитать всю строку и при этом сохранить ее на той же строке?

1 Ответ

0 голосов
/ 06 марта 2019

Без минимального, полного, поддающегося проверке примера трудно диагностировать возникшую проблему.Тем не менее, я могу создать код, который читает строку ввода от пользователя, не прерывая предыдущую строку «Введите ваше имя>»:

#include <iostream>
#include <string>

int main()
{
    std::string str;
    std::cout << "Please enter your full name > ";
    std::getline(std::cin, str);
    std::cout << "Hello " << str << std::endl;
    return 0;
}

Если вы привыкли добавлять все std::cout строк с std::endl, вы, возможно, забыли его опустить в этот раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...