zoukankan      html  css  js  c++  java
  • cin专题

    int main()
    {
        char ch;

       

        //运行程序,直接回车,无论执行下面哪一句代码后发现ch的值是10,即换行符\n  (下面两句代码值能执行一句对比结果)

        cin.get(ch);
        //ch=cin.get();
    }


    int main()
    {
        char str[10],ch;
        cin.get(str,10);
         //运行程序,直接回车(下面两句代码值能执行一句对比结果)

        //cin.get(ch);    //若执行这一句,执行完以后发现ch的值为-52,即未初始化

        ch=cin.get(); //若执行这一句,执行完以后发现ch的值为-1,即输入流已经读取到流尾

       /*

       之所以出现上面的情况,是因为使用cin.get(str,10)读取空行后将设置失效位(即cin.fail()为1,cin.eof()仍未0),使接下来的输入被阻断

       */

    }

    int main()
    {
        char str[10],ch;
        cin.get(str,10);
        cin.clear();//如果加上这一句,发现下面两句任何一句执行以后,ch的值为10,即'\n',这是因为cin.clear()恢复失效位。

         //运行程序,直接回车(下面两句代码值能执行一句对比结果)

        //cin.get(ch);    //若执行这一句,执行完以后发现ch的值为-52,即未初始化

        ch=cin.get(); //若执行这一句,执行完以后发现ch的值为-1,即输入流已经读取到流尾

       

    }  

     第一种

    char str1[5];
    cin.getline(str1,5); //输入5个或5个以上的字符,下面输出0,1  
    cout<<cin.eof()<<","<<cin.fail()<<endl; 

    第二种

    char str1[5];
    cin.get(str1,5); //输入回车,下面输出0,1  
    cout<<cin.eof()<<","<<cin.fail()<<endl;

    下面一段代码:

    char str1[5],str2[5],ch;
        cin.getline(str1,5);//输入超过4个字符,回车,再输入4个字符,发现运行结果正确。
        //下面5行代码是清空缓冲区的
        if(cin.fail())
        {
            cin.clear();
        }
        while((ch=cin.get())!='\n'&&ch!=EOF);

        cin.getline(str2,5);
        cout<<str1<<","<<str2<<endl;
        return 0; 

     
  • 相关阅读:
    开发一款即时通讯App,从这几步开始
    即时通讯App怎样才能火?背后的技术原理,可以从这5个角度切入
    快速搭建一个“微视”类短视频 App
    iOS Push详述,了解一下?
    怒刷3000条短视频后,我终于发现网红300万点赞的套路
    如何精准实现OCR文字识别?
    30分钟彻底弄懂flex布局
    渲染管道
    游戏引擎架构Note2
    浮点数的内存表示方法
  • 原文地址:https://www.cnblogs.com/mxw09/p/1848232.html
Copyright © 2011-2022 走看看