博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初尝C++
阅读量:6206 次
发布时间:2019-06-21

本文共 1080 字,大约阅读时间需要 3 分钟。

    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

你可能感兴趣的文章
svn怎么上传文件 — 百度经验无耻推广
查看>>
非对称加密
查看>>
Linux安装source-code-pro字体
查看>>
实现Parcelable接口
查看>>
win10下安装ubuntu14.04双系统(UEFI固件)
查看>>
pygame写游戏,常用代码记录
查看>>
django-rest-framework第一次使用使用常见问题
查看>>
【Java并发性和多线程】线程安全及不可变性
查看>>
iOS多视图代码操作
查看>>
逆向Android软件的步骤
查看>>
Github Page创建个人主页以及绑定域名
查看>>
Oracle 10.2.0.5 非归档current redolog损坏处理一例
查看>>
Docker安装ssh,supervisor等基础工具
查看>>
Android项目里集成Cordova详解
查看>>
卡拉丁发布第四代车用空调滤清器
查看>>
三星:Android之外,技术为王
查看>>
技术回归本位:海尔引领空调产业重构格局
查看>>
Struts2中访问HttpServletRequest和HttpSession
查看>>
Android Fragments 详细使用
查看>>
解密阿里云七武器之高性能消息服务ONS
查看>>