close

 cin.getline()与 cin.get(array_name,Arsize)的读取方式差不多,以Enter结束,可以接受空格
字符。按照长度(Arsize)读取字符, 会丢弃最后的Enter字符

但是这两个函数是有区别的: 
cin.get(array_name, Arsize)当输入的字符串超长时,不会引起下一個cin函数輸入的错误,后面的cin操作会继续执行,只是直接从缓冲区中取数据。且会丢弃最后的Enter字符 

但是cin.getline()当输入超长时,会引起下一個cin函数輸入的错误,后面的cin操作将不再执行

int main ()


char ch, a[20];

cin.getline(a,5);

cin >> ch;

cout << a << endl;

cout << (int)ch << endl;

return0;

}

输入:

 

 

 

输出:

 

12345

  

1234 

-52 

【分析】与

cin.get(array_name,Arsize)

的例程比较会发现,这里的

ch

并没有读取缓冲区中的

5

,而是返

回了

-52

,这里其实

cin>>ch

语句没有执行,是因为

cin

出错了!

输入:

 

 

 

输出:

 

12345

  

1234 

-52 

【分析】与

cin.get(array_name,Arsize)

的例程比较会发现,这里的

ch

并没有读取缓冲区中的

5

,而是返

回了

-52

,这里其实

cin>>ch

语句没有执行,是因为

cin

出错了!

测试: 输入:         输出: 
         12345↙       1234 
                              -52 
【分析】与cin.get(array_name,Arsize)的例程比较会发现,这里的ch并没有读取缓冲区中的5,而是返回了-52,这里其实cin>>ch语句没有执行,是因为cin出错了!
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 minsin 的頭像
    minsin

    minsin的部落格

    minsin 發表在 痞客邦 留言(0) 人氣()