1.i正在尝试检查cin.get()是否在流中保留了结束行字符,并考虑将其用于下一次输入。 我已经在代码块中尝试了此代码,但无法为下一个字符串提供输入,我正在附加我尝试过的代码并输出了。任何人都可以解释一下。
#include<iostream>
using namespace std;
int main()
{
char s1[10];
char s2[10];
cout << "enter the first string: ";
cin.get(s1, 10);
cout << "enter the second string: ";
cin.getline(s2, 10);
cout << s1 << " " << s2;
return 0;
}
输入第一个字符串:hello
输入第二个字符串:hello
请解释输出内容
答案 0 :(得分:0)
This get
function reference说您的超载是
与
get(s, count, widen('\n'))
该函数的重载读取到(除其他外)
下一个可用的输入字符
c
等于delim
,由Traits::eq(c, delim)
确定。此字符未提取(不同于basic_istream::getline())
[重点突出]
因此,换行符留在输入缓冲区中,以供getline
调用读取为“空”行。
如果您想阅读行,我建议您使用std::string
和std::getline
(它们确实会读取并丢弃换行符)。
答案 1 :(得分:-1)
cin.get()默认情况下捕获换行符。它将不会在流中保留换行符。