get, getline, gets, getchar 用法「建议收藏」

get, getline, gets, getchar 用法「建议收藏」1、cin  1、cin>>  用法1:最基本,也是最常用的用法,输入一个数字:  #include  usingnamespacestd;  main()  {  inta,b;  cin>>a>>b;  cout<

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1、cin

  1、cin>>
  用法1:最基本,也是最常用的用法,输入一个数字:
  #include <iostream>
  using namespace std;
  main ()
  {
  int a,b;
  cin>>a>>b;
  cout<<a+b<<endl;
  }
  输入:2[回车]3[回车]
  输出:5
  用法2:接受一个字符串,遇“空格”、“TAB”、“回车”都结束
  #include <iostream>
  using namespace std;
  main ()
  {
  char a[20];
  cin>>a;
  cout<<a<<endl;
  }
  输入:jkljkljkl
  输出:jkljkljkl
  输入:jkljkl jkljkl       //遇空格结束
  输出:jkljkl

2、cin.get()

  2、cin.get()
  用法1: cin.get(字符变量名)可以用来接收字符
  #include <iostream>
  using namespace std;
  main ()
  {
  char ch;
  ch=cin.get();               //或者cin.get(ch);
  cout<<ch<<endl;
  }
  输入:jljkljkl
  输出:j
  用法2:cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格
  #include <iostream>
  using namespace std;
  main ()
  {
  char a[20];
  cin.get(a,20);
  cout<<a<<endl;
  }

  输入:jkl jkl jkl
  输出:jkl jkl jkl
  输入:abcdeabcdeabcdeabcdeabcde (输入25个字符)
  输出:abcdeabcdeabcdeabcd              (接收19个字符+1个'\0')
  用法3:cin.get(无参数)没有参数主要是用于舍弃输入流中的不需要的字符,或者舍弃回车,弥补cin.get(字符数组名,接收字符数目)的不足.
  这个我还不知道怎么用,知道的前辈请赐教;

3、cin.getline()

  3、cin.getline()   // 接受一个字符串,可以接收空格并输出
  #include <iostream>
  using namespace std;
  main ()
  {
  char m[20];
  cin.getline(m,5);
  cout<<m<<endl;
  }
  输入:jkljkljkl
  输出:jklj
  接受5个字符到m中,其中最后一个为'\0',所以只看到4个字符输出;
  如果把5改成20:
  输入:jkljkljkl
  输出:jkljkljkl
  输入:jklf fjlsjf fjsdklf
  输出:jklf fjlsjf fjsdklf
  //延伸:
  //cin.getline()实际上有三个参数,cin.getline(接受字符串的看哦那间m,接受个数5,结束字符)
  //当第三个参数省略时,系统默认为'\0'
  //如果将例子中cin.getline()改为cin.getline(m,5,'a');当输入jlkjkljkl时输出jklj,输入jkaljkljkl时,输出jk
  当用在多维数组中的时候,也可以用cin.getline(m[i],20)之类的用法:
  #include<iostream>
  #include<string>
  using namespace std;          
  main ()
  {
  char m[3][20];
  for(int i=0;i<3;i++)
  {
  cout<<"\n请输入第"<<i+1<<"个字符串:"<<endl;
  cin.getline(m[i],20);
  }
  cout<<endl;
  for(int j=0;j<3;j++)
  cout<<"输出m["<<j<<"]的值:"<<m[j]<<endl;
  }
  请输入第1个字符串:
  kskr1
  请输入第2个字符串:
  kskr2
  请输入第3个字符串:
  kskr3
  输出m[0]的值:kskr1
  输出m[1]的值:kskr2
  输出m[2]的值:kskr3

4、getline() 

  4、getline()     // 接受一个字符串,可以接收空格并输出,需包含“#include<string>”
  #include<iostream>
  #include<string>
  using namespace std;
  main ()
  {
  string str;
  getline(cin,str);
  cout<<str<<endl;
  }
 
  输入:jkljkljkl
  输出:jkljkljkl
  输入:jkl jfksldfj jklsjfl
  输出:jkl jfksldfj jklsjfl
  和cin.getline()类似,但是cin.getline()属于istream流,而getline()属于string流,是不一样的两个函数

5、gets()

  5、gets()        // 接受一个字符串,可以接收空格并输出,需包含“#include<string>”
  #include<iostream>
  #include<string>
  using namespace std;
  main ()
  {
  char m[20];
  gets(m);                       //不能写成m=gets();
  cout<<m<<endl;
  }
  输入:jkljkljkl
  输出:jkljkljkl
  输入:jkl jkl jkl
  输出:jkl jkl jkl
  类似cin.getline()里面的一个例子,gets()同样可以用在多维数组里面:
  #include<iostream>
  #include<string>
  using namespace std;
  main ()
  {
  char m[3][20];
  for(int i=0;i<3;i++)
  {
  cout<<"\n请输入第"<<i+1<<"个字符串:"<<endl;
  gets(m[i]);
  }
  cout<<endl;
  for(int j=0;j<3;j++)
  cout<<"输出m["<<j<<"]的值:"<<m[j]<<endl;
  }
  请输入第1个字符串:
  kskr1
  请输入第2个字符串:
  kskr2
  请输入第3个字符串:
  kskr3
  输出m[0]的值:kskr1
  输出m[1]的值:kskr2
  输出m[2]的值:kskr3
  自我感觉gets()和cin.getline()的用法很类似,只不过cin.getline()多一个参数罢了;
  这里顺带说明一下,对于本文中的这个kskr1,kskr2,kskr3的例子,对于cin>>也可以适用,原因是这里输入的没有空格,如果输入了空格,比如“ks kr jkl[回车]”那么cin就会已经接收到3个字符串,“ks,kr,jkl”;再如“kskr 1[回车]kskr 2[回车]”,那么则接收“kskr,1,kskr”;这不是我们所要的结果!而cin.getline()和gets()因为可以接收空格,所以不会产生这个错误;

6、getchar()

  6、getchar()   //接受一个字符,需包含“#include<string>”
  #include<iostream>
  #include<string>
  using namespace std;
  main ()
  {
  char ch;
  ch=getchar();                        //不能写成getchar(ch);
  cout<<ch<<endl;
  }
  输入:jkljkljkl
  输出:j
  //getchar()是C语言的函数,C++也可以兼容,但是尽量不用或少用

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

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

(0)
上一篇 2022年10月9日 下午10:36
下一篇 2022年10月9日 下午10:46


相关推荐

  • python和c语言区别大吗_C语言和python的区别

    python和c语言区别大吗_C语言和python的区别Python 可以说是目前最火的语言之一了 人工智能的兴起让 Python 一夜之间变得家喻户晓 Python 号称目前最最简单易学的语言 现在有不少高校开始将 Python 作为大一新生的入门语言 本萌新也刚开始接触 Python 发现 Python 与其他语言确实有很大的区别 Python 是由 C 语言实现的 因此想把 Python 与 C 语言做一个简单的比较 一 C 语言是编译型语言 经过编译后 生成机器码 然后再运行

    2026年3月19日
    3
  • WIN32下使用DirectSound接口的简单音频播放器(支持wav和mp3)「建议收藏」

    WIN32下使用DirectSound接口的简单音频播放器(支持wav和mp3)「建议收藏」刚好最近接触了一些DirectSound,就写了一个小程序练练手,可以用来添加播放基本的wav和mp3音频文件的播放器。界面只是简单的GDI,dxsdk只使用了DirectSound8相关的接口。Di

    2022年8月2日
    8
  • Struts2 漏洞集合

    Struts2 漏洞集合Struts2漏洞集合总结了一部分Strtus2漏洞,虽然现在这部分的漏洞很少了,但也是学习的一部分,收集的并不全面,后续会做补充。漏洞环境搭建可以使用在线的 Vulfocus ,或者使用docker部署S2-001(CVE-2007-4556)该漏洞因为用户提交表单数据并且验证失败时,后端会将用户之前提交的参数值使用OGNL表达式%{value}进行解析,然后重新填充到对应的表单数据中。例如注册或登录页面,提交失败后端一般会默认返回之前提交的数据,由于后端使用

    2022年7月19日
    18
  • 解决 [HPM] Error occurred while trying to proxy request

    解决 [HPM] Error occurred while trying to proxy request之前 vue 运行访问接口本来没有问题的 今天突然访问老是出现这个问题 情况有四中情况 而我是我这边网络不稳定的原因 气气 第二个情况是因为代理的接口写错 第三个是端口被占用 第四个是 node 版本低的原因 下面来说说如何解决版本低这个问题 Node 版本更新 下载指定版本 msi 文件 安装到历史安装目录 即完成版本更新 这是 node 的官网 http nodejs cn download

    2026年3月19日
    3
  • AOSP开源协议_open sap

    AOSP开源协议_open sapOLAP(OnlineAnalyticalProcessing)是指在线联机分析,基于数据查询计算并实时获得返回结果。日常业务中的报表、数据查询、多维分析等一切需要即时返回结果的数据查询任务都属于OLAP的范畴。对应的,行业内也有相应产品来满足这类需求,那就是OLAPServer。当前主流OLAPServer几乎都是基于RDB或封装成RDB的大数据平台,有点类似早期的ROLAP(这个词已经很少被提及了),其中一个关键的特征是使用SQL作为查询语言。RDB和SQL的特性会给OLAPServer带来诸

    2025年8月10日
    10
  • 关于java的JIT知识

    关于java的JIT知识

    2021年12月3日
    45

发表回复

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

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