总是弄混,所以总结一下:

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流,是不一样的两个函数

gets()        // 接受一个字符串,可以接收空格并输出,需包含“#include<string>”

#include<iostream>
#include<string>
using namespace std;
main ()
{ char m[];
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[][];
for(int i=;i<;i++)
{ cout<<"\n请输入第"<<i+<<"个字符串:"<<endl;
gets(m[i]); }
cout<<endl;
for(int j=;j<;j++)
cout<<"输出m["<<j<<"]的值:"<<m[j]<<endl; }

请输入第1个字符串: kskr1

请输入第2个字符串: kskr2

请输入第3个字符串: kskr3

输出m[0]的值:kskr1 输出m[1]的值:kskr2 输出m[2]的值:kskr3

杂记:

1、cin

  2、cin.get()

  3、cin.getline()

  4、getline()

  5、gets()

  6、getchar()

  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()

  用法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()   // 接受一个字符串,可以接收空格并输出

  #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()     // 接受一个字符串,可以接收空格并输出,需包含“#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()        // 接受一个字符串,可以接收空格并输出,需包含“#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()   //接受一个字符,需包含“#include<string>”

  #include<iostream>

  #include<string>

  using namespace std;

  main ()

  {

  char ch;

  ch=getchar();                        //不能写成getchar(ch);

  cout<<ch<<endl;

  }

  输入:jkljkljkl

  输出:j

note:获取字符输入的一些函数的更多相关文章

  1. JavaScript 在函数中使用Ajax获取的值作为函数的返回值

    解决:JavaScript 在函数中使用Ajax获取的值作为函数的返回值,结果无法获取到返回值 原因:ajax默认使用异步方式,要将异步改为同步方式 案例:通过区域ID,获取该区域下所有的学校 var ...

  2. vc根据域名获取IP地址 gethostbyname()函数

    以下是VC Socket初始化时用到的两个函数 一.WSAStartup函数                int WSAStartup                       (         ...

  3. php获取当前被调函数的参数列表

    下面是php中的一个获取当前别调用函数的参数列表的测试程序,感受一下php类库的强大之处: // 测试获取参数列表 getArgs('aaa', 'bbb', 'ccc', 123, true); f ...

  4. Delphi获取公网IP地址函数

    uses IdHTTP; function GetPublicIP: string; var strIP, URL: string; iStart, iEnd: Integer; MyIdHTTP: ...

  5. PHP常用获取文件路径的函数集合整理

    转自: http://blog.sina.com.cn/s/blog_71ed1b870102vslg.html 我们在开发PHP项目过程中,经常会用到包含文件,所以有时候需要获取文件的相对路径或者绝 ...

  6. jquery教程-Jquery 获取标签个数 size()函数用法

    jquery教程-Jquery 获取标签个数 size()函数用法,size() 方法返回被 jQuery 选择器匹配的元素的数量. 语法 $(selector).size()     jQuery ...

  7. 同一域名对应多个IP时,PHP获取远程网页内容的函数

    同一域名对应多个IP时,PHP获取远程网页内容的函数 [文章作者:张宴 本文版本:v1.0 最后修改:2008.12.15 转载请注明原文链接:http://blog.zyan.cc/post/389 ...

  8. php中的常用数组函数(三)(获取数组交集的函数们 array_intersect()、array_intersect_key()、array_intersect_assoc()、array_intersect_uassoc()、array_intersect_ukey())

    这5个获取交集的函数 有 5个对应的获取差集的函数.我是链接. array_intersect($arr1, $arr2); //获得数组同键值的交集 array_intersect_key($arr ...

  9. 【转】linux C++ 获取文件信息 stat函数详解

    stat函数讲解 表头文件:    #include <sys/stat.h>             #include <unistd.h>定义函数:    int stat ...

随机推荐

  1. eclipse自动部署问题

    1. 使用myeclipse自动部署的方法(使用myeclipse 2015自动部署有问题,待解决)(换成2014的便可以自动部署): 1.Window->preferences->Mye ...

  2. Maven概览

    Maven的核心思想,约定由于配置 1 Maven坐标 1.1 本项目的坐标 groupId: 必须.项目组名称,定义当前Maven项目所隶属的实际项目,通常与域名反向一一对应,与Java包名表示方式 ...

  3. 调用startActivityForResult,onActivityResult无响应的解决办法

    三种情况: 1.执行startActivityForResult,没等到被调用的 Activity 返回,onActivityResult() 就被执行了.找了很久,终于通过小道消息得知,这与 Act ...

  4. CPU绑定操作

    使用virsh vcpuinfp命令查看虚拟机VCPU和物理CPU的对应关系 [root@svn ~]# virsh vcpuinfo 16 VCPU: 0 CPU: 3 状态: running CP ...

  5. 云服务程序在启动的时候执行Powershell脚本

    如果在云服务程序启动时候,需要执行Powershell脚本,我们需要将脚本嵌入到程序中,并且编写一个cmd来执行这个脚本,具体如下: 1.编写测试的Powershell脚本:每隔10分钟 检测dns ...

  6. thinkphp安装 版本 3.1.3

    基础版: 只有thinkphp基础运行功能 完整版:基础运行能力,还有图片.上传等各种处理类(建议下载完整版) 重要的三个变量 define('APP_DEBUG',True); // 定义应用目录d ...

  7. Struts 中 ActionContext ctx.put()把数据放到ValueStack里之数据传输背后机制:ValueStack(值栈)

    1.     数据传输背后机制:ValueStack(值栈) 在这一切的背后,是因为有了ValueStack(值栈)! ValueStack基础:OGNL要了解ValueStack,必须先理解OGNL ...

  8. 通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进

    关于在spring  容器初始化 bean 和销毁前所做的操作定义方式有三种: 第一种:通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作 第二 ...

  9. redis使用watch完成秒杀抢购功能(转)

    redis使用watch完成秒杀抢购功能: 使用redis中两个key完成秒杀抢购功能,mywatchkey用于存储抢购数量和mywatchlist用户存储抢购列表. 它的优点如下: 1. 首先选用内 ...

  10. _SYS_LIB="-lm -lnsl -ldl"

    -lm  是指连接libm.so     意思是连接数学库, -lnsl  如果涉及RPC编程,必然需要libnsl.so,因此必须在编译选项里加入 -lnsl.      gcc 编译选项 -L是要 ...