c++精学之cin和string

cin只读取‘ ’之前的字符 遇到空格结束 但是如果空格后面还有字符则会留在输入队列中 留给下一个cin或者类似的东西

cin.getline(对象,输入字符数) 则是以回车为结束

cin.get(对象,输入字符数)很特殊 他也是以回车为结束 但是它不同于上面两种 它并不是 读取回车再丢弃 而是将换行符留在输入队列中 所以会出现 如果连续使用两个cin.get(对象,输入字符数) 则因为换行符还在队列中 并未被丢弃 第二个,第三个第四个 乃至无数个 cin.get都将读到这个换行符然后直接结束  此时我们可以在 第一个cin.get(对象,输入字符数)后面加入一个无参的cin.get()这个会直接读取换行符 下一个cin.get(对象,输入字符数)就有效了  也可以写成 cin.get(对象,输入字符数).get()

反正这个什么cin.getline和cin.get都容易被换行符弄出bug 注意一下 一般后面接一个无参get()或者get(ch)解决

小技巧  cin.getline(xx,xx).getline(xx.xx)和写两行是一样的效果

可以直接建立 string a    就是类似建立了一个a数组的对象(就是一个string数据类型的对象) 相比于数组 数组不能直接传递 但是string对象可以()也就是string对象可以=string对象 还可以直接用+好进行连接 并且string对象会自动调节对象的长度

可以通过 a.size()知道这个string对象的长度 于原来strlen函数类似作用

 

新增wchar_t  char16_t  char32_t

但是使用时  whar_t  a[]=L"asdfsfd";       char16_t b[]=u"asdfadsf";     char32_t c[]=U"sadfadsf";

原始字符串 raw  在这里 /n就是/n不是换行  “也只是本身 使用方法  cout<<R"(asdfkkjsadf)" 用R"(输出内容)"来界定

也可以写成 R"+*("(aaa)")+*"则会输出"(aaa)"  在“(之中加什么都行 但是要原样在结尾加注意 顺序必须一样  

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值