C++ 关于cin.get()的澄清

C++ 关于cin.get()的澄清,c++,C++,其中temp是字符数组,MaxLen是常量 这就是我认为代码的意思 “从输入缓冲区获取MaxLen字符并分配给临时” 然后 只要cin没有错误标志且下一个字符不是“\n”:继续 这是否正确?行: ... cin.get(temp,MaxLen); while(cin && cin.get()!= '\n') continue; ... 从标准输入流中最多将MaxLen-1字符读入temp,直到找到\n 以下是: cin.get(temp,MaxLen); 在散文中,意

其中temp是字符数组,MaxLen是常量

这就是我认为代码的意思

“从输入缓冲区获取MaxLen字符并分配给临时” 然后 只要cin没有错误标志且下一个字符不是“\n”:继续

这是否正确?

行:

...
cin.get(temp,MaxLen);
while(cin && cin.get()!= '\n')
    continue;
...
从标准输入流中最多将
MaxLen-1
字符读入
temp
,直到找到
\n

以下是:

cin.get(temp,MaxLen);
在散文中,意思是我们从那里跳到了一行的末尾

这意味着,如果最上面的
get
到达行的末尾,while循环将跳过下一行。否则,如果读取所有
MaxLen-1
字符时未找到
\n
,则while循环将跳过该行上的其余字符。

该行:

...
cin.get(temp,MaxLen);
while(cin && cin.get()!= '\n')
    continue;
...
从标准输入流中最多将
MaxLen-1
字符读入
temp
,直到找到
\n

以下是:

cin.get(temp,MaxLen);
在散文中,意思是我们从那里跳到了一行的末尾


这意味着,如果最上面的
get
到达行的末尾,while循环将跳过下一行。否则,如果读取所有
MaxLen-1
字符时未找到
\n
,则while循环将跳过该行上的其余字符。

因此,例如,如果MaxLen=5,我输入“Hello,我的名字是Sam”,则cin.get(temp,Maxline)给出temp=“Hell”和while(…)是否跳过该行的其余部分,直到按下enter键(在sam中的m之后)?抱歉打扰了,我正在尽我所能理解一切。@HMPARTICLE似乎是这样,是的。但是我建议尝试一下。例如,如果MaxLen=5,我输入“Hello,我的名字是Sam”,那么cin.get(temp,Maxline)给出temp=“Hell”,while(…)的目的是跳过行的其余部分,直到按下enter键(在Sam中的m之后)?抱歉打扰了,我正在尽我所能理解一切。@HMPARTICLE似乎是这样,是的。不过我建议你试试。