初尝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!

原文链接: https://www.cnblogs.com/heyuheitong/archive/2012/10/22/2734512.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    初尝C++

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/66547

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 下午12:24
下一篇 2023年2月9日 下午12:24

相关推荐