C++ getLine()函数读取字符串时,总是先读取一个回车符,怎么解决

总结

在C++中,使用 getline() 函数读取字符串时,如果在之前的输入操作中使用了 cin 或其他流输入函数,会导致 getline() 读取到一个回车符。这是因为标准输入流 cin 不会丢弃换行符。要解决这个问题,可以在调用 getline() 之前使用 cin.ignore() 来清除缓冲区中的回车符。

详细步骤如下:

  1. 使用 cin.ignore() 清除输入流中的回车符,常用的形式是 cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n')
  2. 继续使用 getline() 读取完整的输入字符串。

关键字

C++, getline(), cin, 回车符, 缓冲区, cin.ignore(), 标准输入流, 输入操作, 换行符, 读取字符串