C++中cin、cin.get(char)、cin.get()三种输入区别和注意事项,非常通俗易懂!!!!都直接分点总结好啦!

/*cin和cin.get(char)的区别*/
#include<iostream>
using namespace std;
int main() {
    /*1、cin的输入设置是缓冲的,只有你按下回车键才会发送给程序
      2、cin对于输入是忽略空格和换行的,以下例子中输入空格不包含对空格个数的统计,并且输出中无空格
      3、in只有强制的结束标志,即回车,回车对于多行是方便处理的,对于不满一行的字符串的输入,此时就要自定义一个结束字符,此处我用的是‘#'字符
      4、注意:cin的使用是要在使用循环前读取一个字符进行初始化*/
    char ch;
    int count = 0;
    cin >> ch;//初始化
    while (ch != '#') {
        cout << ch;
        ++count;
        cin >> ch;
    }

//运行结果:


    /*1、cin.get(char)的底层实质上将输入还是会转化为cin的输入形式,区别就是多了对空格字符的统计,返回值为对象ch
      2、cin.get()中括号可以放两个参数(数组名(字符串char*),整数)也可以放一个参数(char),也可以不接受参数
      为什么会出现参数输入的多样性呢?由于C的底层是不接受函数重载,而在C++中接受函数重载(即相同函数名不同参数的函数,用于函数功能的扩大,兼容性更好)*/

    char ch;
    int count = 0;
    cin.get(ch);//初始化
    while (ch!= '#') {
        cout << ch;
        ++count;
        cin.get(ch);
    }

//运行结果:


    /*1、cin.get()的返回的是输入的下一个字符的ASCII码,即整数,故要用int类型的ch去接收
      2、由于其要显示字符那么该cin.get()常与cout.put(char(ch))搭配使用
      3、cin.get()的结束标志是EOF,其整型值为-1,代表没有可返回的字符
      4、由于cin.get()会把'\n'也认为为输入的字符,故其输入完成后,连续按下两次enter,再在键盘上按下ctrl+Z后出现^Z后,再按enter,此操作在告诉程序没有可返回的字符
      注意:其输出统计的字符串的长度会比实际长度多1,那是因为enter键出现的'\n',解决办法是在循环中加上判断条件if(ch!='\n')就可以解决该问题*/

    int ch;
    int count = 0;
    while ((ch=cin.get()) !=EOF) {
        if (ch != '\n') {
            cout.put(char(ch));
            ++count;
        }
    }
    cout << endl << count << "字符读取长度";
    return 0;
}

//运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值