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; 

     
  • 相关阅读:
    OpenCV在MFC图像控件内显示图像
    Android APK反编译具体解释(附图)
    Android下用Properties保存程序配置
    王灏:光音网络致力打造Wi-Fi大生态圈
    解决ccSvcHst.exe CPU占用超50%的问题,及其缘由
    配置管理工具比較
    应用程序无法正常启动0xc0150002 解决方式
    现有一些开源ESB总线的比較
    使用GridView自带分页的代码
    Hadoop 2.4.0新特性介绍
  • 原文地址:https://www.cnblogs.com/mxw09/p/1848232.html
Copyright © 2011-2022 走看看