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

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. C#--API

    C#中调用API 介绍 API( Application Programming Interface ),我想大家不会陌生,它是我们Windows编程的常客,虽然基于.Net平台的C#有了强大的类库, ...

  2. 内嵌DB

    SQLLite H2 MySQL Embeded 等 比较项目 SQLite H2 database engine MySQL Embedded Footprint 350KiB ~1MB <2 ...

  3. centos7.2安装paramiko报error: command 'gcc' failed with exit status 1的解决办法

    安装依赖 yum install kernel-devel libxslt-devel libffi-devel python-devel mysql-devel zlib-devel openssl ...

  4. ecshop新增一个编辑器

    在ecshop的后台新增一个编辑器框 步骤一:找到lib_main.php 文件:admin/includes/lib_main.php. 找到变量:function create_html_edit ...

  5. iOS监听键盘事件

    #pragma mark - view life cycle - (void)viewDidLoad { [super viewDidLoad]; [[NSNotificationCenter def ...

  6. JS获取checkbox的个数

    本文算是转载自网络,当时用了他的函数,现在想总结一下,但忘了原文地址了 ================================================================ ...

  7. Android Studio 连接真机不识别

    本人也是初学..写错的请大神多多批评指正! 不胜荣幸!! 强烈推荐使用真机测试..除非是最后关头要测试各个Android系统版本.. 本人遇到的连不上的原因有以下几种: 1  --   手机设置问题. ...

  8. CentOS安装wordpress权限问题

    最近在CentOS6.5上安装wordpress,遇上一个问题,安装好之后外网总是不能再网页进行配置,想了半天应该是源代码文件的权限问题,具体问题与解决如下: 如果你的wordpress安装目录是wo ...

  9. linux下如何使用sftp命令【转】

    linux下如何使用sftp命令 from:   http://www.cnblogs.com/chen1987lei/archive/2010/11/26/1888391.html sftp 是一个 ...

  10. navicat linux 破解

    破解方法一.     navicat linux版本有一个月的试用期, 当过了试用期以后, 不能再进入. 但其实只要将~下.navicat目录下的system.reg文件删掉, 重新启动navicat ...