【发布时间】:2016-05-06 06:25:05
【问题描述】:
我知道使用 cin 我们无法读取多个字符串。但是这个程序中 getline 的行为很难理解。我无法弄清楚其中有什么问题。难道我不能同时使用 cin 和 getline 吗?
#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 !
【问题讨论】:
-
有什么奇怪的?你到底想要什么?
-
@Issac 很好地描述了这种行为。这是预期的行为,但如果您希望代码通过“getline”调用读取下一行,那么您可以使用“cin.ignore(streamsize, delim)”跳过当前行。 cplusplus.com/reference/istream/istream/ignore