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

    xiaoxiao2021-12-14  23

    一 背景:

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

     方法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键结束输入

    转载请注明原文地址: https://ju.6miu.com/read-962757.html

    最新回复(0)