zoukankan      html  css  js  c++  java
  • 初尝C++

        C语言也就是及其马马虎虎,就转到了C++上,一直看着《C++ primer plus》来学习。

        跟着书抄代码实现、看着题目编代码实现,遇到过不少卡壳,也有些小小知识记了下来,有些可能依然没有找到答案,只是记下暂时的解决方法,待以后慢慢琢磨,有些或许算是解决了吧~~

        最近在C++编程中总是会遇到有些纠结的就是cin了,在“小知识.txt”记录的如下:

      1.cin输入:

        getline()和get()可以读取带有空格的输入,直到换行符,前一个丢弃换行符,后一个保留在输入序列中:cin.getline(name,20),读取长度最大为19;
        cin读取到空格或回车都结束,cin的读取将忽略空格和换行符,不输出,丢弃空格,换行符留在缓冲队列;
        cin.get(name,20).get(),后一个用于读取最后的换行符;
        用于string读取值:cin或者getline(cin,str1),读取string的长度:str1.size();
        计算读取了多少单词,可以判断while( cin >> word ): cin会省略空格和换行,每次读取到空格或者换行,即每次读取为一个单词,读取一次返回一个1;

      2.定义int型,输入数字后又输入字符,有可能会出现问题:(现在也没掌握具体会发生的情况)
        if(cin.good()) //判断cin流是否正确
        {
          break;
        }
        else //cin流错误
        {
          cin.clear(); //把流重置为正常状态,但缓冲中还存在之前的输入
          cin.ignore(); //忽略缓冲里面的字符
          cout<<"输入错误的字符,请重新输入:";
          cin>>i;
        }

        可能有点乱,不过大体上比较纠结的是要读取两个变量,一个是int,一个是char,当这种情况连续输入时,前一个输入的换行符有时就是个问题,需要cin.get()或者cin.ignore();

        网上有不少类似的问题,但总觉着这样的cin.get或者ignore都是暂时的解决方法......

        不过cin的到空格结束似乎还是有不少方便,想数输入了多少单词,直接 while(cin >> word) count++; 就行了。继续看c++ primer plus!

  • 相关阅读:
    e667. 在给定图像中创建缓冲图像
    e661. 确定图像中是否有透明像素
    e673. Getting Amount of Free Accelerated Image Memory
    e663. 在gif图像中获取透明和色彩的数量
    e662. 取的图像的色彩模型
    e675. 翻转缓冲图像
    e665. 在图像中过滤三元色
    e679. 浮雕化图像
    e669. 绘制缓冲图像
    e664. 在图像中获取子图像
  • 原文地址:https://www.cnblogs.com/heyuheitong/p/2734512.html
Copyright © 2011-2022 走看看