C++ getLine()函数读取字符串时,总是先读取一个回车符,怎么解决
总结
在C++中,使用 getline()
函数读取字符串时,如果在之前的输入操作中使用了 cin
或其他流输入函数,会导致 getline()
读取到一个回车符。这是因为标准输入流 cin
不会丢弃换行符。要解决这个问题,可以在调用 getline()
之前使用 cin.ignore()
来清除缓冲区中的回车符。
详细步骤如下:
- 使用
cin.ignore()
清除输入流中的回车符,常用的形式是cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n')
。 - 继续使用
getline()
读取完整的输入字符串。
关键字
C++, getline()
, cin
, 回车符, 缓冲区, cin.ignore()
, 标准输入流, 输入操作, 换行符, 读取字符串