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; 

     
  • 相关阅读:
    Mac OS X配置环境变量
    react navite 学习资料
    协议是人造的交互(通信)规则
    语言的本质是更好的对客观世界作出抽象和描述
    编程语言评价标准:冯诺伊曼体系
    afnetwork moya 都符合通信协议七层模型
    Async/await promise实现
    协程 和 async await
    phpStorm字体大小无法调整, 怎么办?
    Composer常见问题
  • 原文地址:https://www.cnblogs.com/mxw09/p/1848232.html
Copyright © 2011-2022 走看看