对C++ STL iostram 中 cin.get(char* cs,int size,char c='/n') 的理解
cs char buf, sizebuf,
c(default=='/n')。
void main()
{
const int size = 16;
char cs[size];
while(cin.get(cs,size))
{
int i=cin.gcount();
cout<<i<<": "<<cs<<endl;
cin.ignore();
}
cin.get():
0 cin.get()试图从OS(在用户敲键盘时触发对应
ascii码值,放
OS)中取字符,如果缓冲为空则等待
;
1 cin.get();
2 cin.get()对输入缓冲中字符:
a 当输入缓冲中第一个字符为终止字符或到达文件末尾时
cin.get()false;
b ,cin.get()move(copy)
cs,3 :到达文件末尾、已
movesize-1、输入缓冲的字符是终止字符。
,cin.get()’/0’cs末尾。如果这时输入缓冲
(3种情况里终止
);
c cin.get()true.
3 while block cin.ignore()将输入
---()
4 while 再次调用 get.line() 从而回到步骤 0 。这时如果没有
上面的cin.ignore(),由于输入缓冲里第一个字符就是终止字符,
所以就会退出while。
最后更新:2017-04-02 00:06:22