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; 

     
  • 相关阅读:
    C#解析PDF
    Ora-03113Ora-03114与Oracle In 拼接字符串的问题
    [Linux] nohup/setsid/& 让进程在后台可靠运行
    [Python] json 报错'xxx is not JSON serializable'的处理方法
    [Linux] 虚拟环境的配置和使用 virtualenv
    [Python] 跳过前几行快速读取文件内容:islice
    对pandas的dataframe绘图并保存
    matplotlib 数据可视化
    awk结合正则匹配
    Pandas库常用函数和操作
  • 原文地址:https://www.cnblogs.com/mxw09/p/1848232.html
Copyright © 2011-2022 走看看