C++中cin如何输入字符串

C++中cin如何输入字符串cin 输入字符串 cincin get cin getline getsgetchar gcountgetget 编写 acm 题目时遇到一个问题 在输入 string 类型数据时 出现 错误 1errorC2679 二进制 没有找到接受 std string 类型

cin输入字符串

  1. cin
  2. cin.get()
  3. cin.getline()
  4. gets
  5. getchar()
  6. gcount
  7. get
  8. getline
  9. ignore
  10. peek
  11. read
  12. readsome
  13. putback
  14. unget
    编写acm题目时遇到一个问题,在输入string类型数据时,出现“错误 1 error C2679: 二进制“>>”: 没有找到接受“std::string”类型的右操作数的运算符(或没有可接受的转换) ”,然后查找cin函数的用法,在此做个简单的总结,以免以后忘记。
    首先cin、cout函数包含在头文件中,而class std::iostream中Input/output stream如下图所示:
    输入输出流结构示意图






列表内容

  1. cin>>
    用法1:最基本,也是最常用的用法,输入一个数字:

#include 
    
    using namespace std; main () { int a,b; cin>>a>>b; cout< 
  

用法2:接受一个字符串,遇“空格”、“TAB”、“回车”都结束

#include 
    
    using namespace std; main () { char a[20]; cin>>a; cout< 
  

2、cin.get()

用法1: cin.get(字符变量名)可以用来接收字符

#include 
    
    using namespace std; main () { char ch; ch=cin.get(); //或者cin.get(ch);  cout< 
  

用法2:cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格

#include 
    
    using namespace std; main () { char a[20]; cin.get(a,20); cout< 
  

用法3:cin.get(无参数)没有参数主要是用于舍弃输入流中的不需要的字符,或者舍弃回车,弥补cin.get(字符数组名,接收字符数目)的不足.

cin.get()用法与cin.get(char ch)一样,默认是接收一个字符,以Tab键、Enter键还有Space键为结束。

3、cin.getline() // 接受一个字符串,可以接收空格并输出

#include 
    
    using namespace std; main () { char m[20]; cin.getline(m,5); cout< 
  

接受5个字符到m中,其中最后一个为’\0’,所以只看到4个字符输出;

当用在多维数组中的时候,也可以用cin.getline(m[i],20)之类的用法:

#include 
    
    #include 
    
    using namespace std; main () { char m[3][20]; for(int i=0;i<3;i++) { cout<<"\n请输入第"< 
  
    1<< 
   "个字符串:"< 
   
     cin.getline(m[i], 
    20); } 
    cout< 
    
      for( 
     int j= 
     0;j< 
     3;j++) 
     cout<< 
     "输出m["< 
     
       "]的值:"< 
       
      
     
    
  

4、getline() // 接受一个字符串,可以接收空格并输出,需包含“#include”

#include 
    
    #include 
    
    using namespace std; main () { string str; getline(cin,str); cout< 
  

和cin.getline()类似,但是cin.getline()属于istream流,而getline()属于string流,是不一样的两个函数

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220342.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午8:43
下一篇 2026年3月17日 下午8:43


相关推荐

  • 腾讯版小龙虾WorkBuddy来啦!不用部署,安装就能用

    腾讯版小龙虾WorkBuddy来啦!不用部署,安装就能用

    2026年3月14日
    2
  • 计算机bit是什么意思

    计算机bit是什么意思bit 是计算机中数据的最小单位 即二进制位 数字 0 和 1 一个字节是八位 8 个 0 和 1 或 1 组成的一串二进制 一个字是 16 位 等于 2 个字节用八位二进制表示的字符叫单字节字符 用 16 位二进制数表示的字符叫双字节字符转载于 https www cnblogs com baxianhua p 9927587 html

    2026年3月18日
    2
  • MyBatis Plus 实现多表分页查询

    MyBatis Plus 实现多表分页查询在MybatisPlus中,虽然IService<T>接口帮我们定义了很多常用的方法,但这些都是T对象有用,如果涉及到多表的查询,还是需要自定义Vo对象和自己编写sql语句,MybatisPlus提供了一个Page对象,查询是需要设置其中的size字段和current字段的值一、分页配置 可以直接使用selectPage这样的分页,但返回的数据确实…

    2022年5月1日
    153
  • pandas’_pandas 删除列

    pandas’_pandas 删除列文章目录1.pd.Series.dropna官方案例2.pd.DataFrame.dropna官方案例1.pd.Series.dropnaSeries.dropna(axis=0,inplace=False,how=None)描述返回删除了缺失值的新Series参数axis:{0or‘index’},default0只有一个轴可以从中删除值inplace:bool,defaultFalse如果为True,则就地修改返回None如果为False,则

    2026年1月17日
    7
  • 想打造大模型智能体?这三款低代码平台Dify、n8n、Coze,你不得不了解!

    想打造大模型智能体?这三款低代码平台Dify、n8n、Coze,你不得不了解!

    2026年3月13日
    2
  • kubernetes ingress配置阿里ssl证书「建议收藏」

    kubernetes ingress配置阿里ssl证书「建议收藏」这里写目录标题申请证书下载证书创建Secret创建yaml配置文件申请证书登录阿里云,找到【SSL证书】,点击申请证书如果没有创建证书资源包,需要建立证书资源包才能申请免费证书。页面是这样的,待申请会显示20个,因为我已经建立一个了。在点击【证书申请】点击【确认】即可。然后需要绑定域名。例如绑定【xxx.com】。通常需要审核时间,大概几分钟就通过了,然后就可以下载了。下载证书选择Nginx证书下载。会得到一个压缩包,包含两个文件。【xxx_xxx.key】和【xxx_xxx

    2026年4月17日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号