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

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. INADDR_ANY

    INADDR_ANY就是指定地址为0.0.0.0的地址,这个地址事实上表示不确定地址,或“所有地址”.“任意地址”. 一般来说,在各个系统中均定义成为0值. 外文名 INADDR_ANY 别 名 所有 ...

  2. Java多线程系列

    一.参考文献 1.:Java多线程系列目录 (一) 基础篇 01. Java多线程系列--“基础篇”01之 基本概念 02. Java多线程系列--“基础篇”02之 常用的实现多线程的两种方式 03. ...

  3. adapter(转自Devin Zhang)

    1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的View(ListView,GridView)等地方都需要用到Adapter.如下图直 ...

  4. VS2015 推荐插件

    VS2015 推荐插件 //////////////////////////////////////////////////////////////////////////////////////// ...

  5. PetaPoco初体验(转)

    PetaPoco初体验(转) PetaPoco初体验(转) 大部分转自: http://landyer.com/archives/138 PetaPoco C#微型ORM框架,基本无需配置,仅由单个c ...

  6. ASP.NET技巧:教你制做Web实时进度条

    网上已经有很多Web进度条的例子,但是很多都是估算时间,不能正真反应任务的真实进度.我自己结合多线程和ShowModalDialog制做了 一个实时进度条,原理很简单:使用线程开始长时间的任务,定义一 ...

  7. wampserver 2.5安装pear win8.1

    集成环境的悲伤啊~ 本来看到pear想试试 结果发现根本没有go-pear.bat 自己的环境 都是 系统win 8.1 php 5.5.12 mysql  5.6.17 apache 2.4.9   ...

  8. 使用pt-fifo-split 工具往mysql插入海量数据

    在<mysql插入/更新数据>这篇文章提到,使用LOAD DATA INFILE语句,可以从一个文件直接加载数据到mysql中,但如果文件非常大,可能还需要对文件进行切割,分多次加载,这种 ...

  9. C# 对象 序列化 XML

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...

  10. XSHELL下直接下载文件到本地(Windows)

    xshell很好用,然后有时候想在windows和linux上传或下载某个文件,其实有个很简单的方法就是rz,sz 首先你的Ubuntu需要安装rz.sz(如果没有安装请执行以下命令,安装完的请跳过. ...