阅读81 返回首页    go 阿里云 go 技术社区[云栖]


对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

  上一篇:go 读取硬件信息的参考代码
  下一篇:go 获得CPU温度的函数