Ну, я знаю, используя cin, мы не можем читать несколько строк. Но поведение getline здесь в этой программе трудно понять. Я не могу понять, в чем проблема. Я не могу использовать cin и getline в тандеме?Wierd поведение getline в C++?
#include <iostream>
#include <string>
int main()
{
std::string name;
std::cout << "What is your name? ";
std::cin>>name;
std::cout << "Hello, " << name << "!"<<std::endl;
getline (std::cin, name);
std::cout << "Hello, " << name << "!\n";
}
Input :
Jai Simha Verma
Jai Simha Verma
OUTPUT:
What is your name? Hello, Jai!
Hello, Simha Verma !
Что странно? Что именно вы хотите? –
@ Иссак описал поведение очень хорошо. это ожидаемое поведение, но если вы ожидали, что ваш код будет читать следующую строку с помощью вызова «getline», вы можете пропустить текущую строку, используя «cin.ignore (streamsize, delim)». http://www.cplusplus.com/reference/istream/istream/ignore/ – Rana