您的位置:首页 > 编程语言 > C语言/C++

关于C++ 从命令行输入数据 常用输方法cin的一些理解总结

2016-12-02 11:21 881 查看
一 背景:

实现从命令行输入 不定长度的数字,求和的简单功能;

 方法1:



这是最简单的方法,但是缺点在于:如注释所示,在Windows系统下只能以Ctrl+Z或其他非data的类型的输入作为输入结束符,常用的Enter键不能作为结束符。

疑问:会不会是因为输入数据data类型是int类型引起的呢?

测试1:



预期结果:当输入Enter键后,会跳出while循环。但是结果是while循环一直在执行,跳不出。

猜想的结论:可能cin这个对象调用运算符>>时,会忽略Enter键的。

二 查阅资料 得到结论:

1 常用的cin、cout是类的对象



2 用cin输入的数据会先保存到缓冲区中,刷新缓冲区的方法有多种方法,其中Enter键的输入就是其中一种刷新缓冲区的方法。

cin对象有很多类函数和操作符,其中“>>”就是一种输入操作符。用这种方法进行输入时,Enter首先会引起缓冲区的刷新,但是缓冲区中并不包括输入的Enter。也就是,cin>>会忽略输入的Enter键。

3 cin对象的get()函数实现字符的输入,并不会忽略Enter键。那么实现背景中的以Enter键结束输入就可以用get()实现。

 get()函数有5中重载类型,如下图:



其中最常用的是前两种:

1> get(),从缓冲区中读取一个字符,返回该字符的ascii码。

2>  get(char &c) 从缓冲区中读取一个字符,保存到变量c中。

4 实现功能 :输入数字以空格间隔,以Enter键结束输入

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐