在学习C++时大家肯定迷惑过关于输入输出各种输出函数的功能,现在来总结一下各种函数的简单用法。

  cin建有一个缓冲区,即输入缓冲区。一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据。正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入,这就是为什么有时会出现输入语句失效的原因。

  1.cin>>函数的用法:这是我们最经常用,学习C++最初接触的输入流。

  用法1.接受一个字符串的输入,遇到“空格”"TAB""回车“结束。

  #include <iostream>
  using namespace std;
  void main ()
  {
    char a[10];
    cin>>a;
    cout<<a<<endl;
  }

  输入:aaabbbccc

  输出:aaabbbccc

  输入:aaa bbb ccc

  输出:aaa

  2.输入一个数字。

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

  }

  输入:1回车2回车

  输出:3

  2.cin.get()的用法,这函数有三种形式,cin.get(),cin.get(char ch),cin.get(array,length)。

  用法1.cin.get()

  用于读取一个字符,结束条件是回车,不过不会丢弃缓冲区的回车(enter)和空格,cin.get()和cin.get(char ch)功能基本一样的,char = cin.get()和cin.get(char ch)共能一样。 

  #include<iostream>
  using namespace std;
  int main()
  {
    char c,ch;
    c = cin.get();
    cin.get(ch);
    cout<<c<<endl;
    cout<<ch<<endl;
    return 0;
  }

  输入:a回车(输入一个字符然后接着回车)

  输出:a

    (此处有一行)

  输入:abcd回车

  输出:a

       b  

  用法2.cin.get(char ch)用法同用法1

  用法3.cin.get(array,length) 接受一个字符串的输入,接受输入的length-1个字符,最后一个存入的是‘\0’。

  #include<iostream>
  using namespace std;
  int main()
  {
    char ch[10];
    cin.get(ch,5);
    cout<<ch<<endl;
    return 0;
  }

  输入:abcdefg回车

  输出:abcd

  3.cin.getline()的用法,接受一个字符串的输入包括空格,遇到回车停止。

  用法1.cin.getline()  

  #include<iostream>
  using namespace std;
  int main()
  {
    char ch[10];
    cin.getline(ch,5);
    cout<<ch<<endl;
    return 0;
  }

  输入:aaaaaaaa

  输出:aaaa

  4.getline()函数,接受一个字符串的输入包含空格,遇到回车停止要包含#incldue<string>。

  用法1.getline(cin,sting s)  

  #include<iostream>
  #include<string>
  using namespace std;
  int main()
  {
    string s;
    getline(cin,s);
    cout<<s<<endl;
    return 0;
  }

  输入:abcdefg回车

  输出:abcdefg

  5.gets()函数,接受一个字符串的输入包含空格,遇到回车停止,要包含#incldue<string>。

  用法1:接收一个字符串的输入。  

  #include<iostream>
  #include<string>
  using namespace std;
  int main()
  {
    char ch[10];
    gets(ch);
    cout<<ch<<endl;
    return 0;
  }

  输入:abcdefg回车

  输出:abcdefg

  6.getchar()接受一个字符输入,包含空格,遇到回车停止,要包含#incldue<string>。

  用法1:接受一个字符的输入 

  #include<iostream>
  #include<string>
  using namespace std;
  int main()
  {
    char ch;
    ch = getchar();
    cout<<ch<<endl;
    return 0;
  }

  输入:abc回车

  输出:a

C++中cin的使用总结的更多相关文章

  1. C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法----细节决定成败 (sort用法)

    C++中cin.cin.get().cin.getline().getline().gets()等函数的用法 学C++的时候,这几个输入函数弄的有点迷糊:这里做个小结,为了自己复习,也希望对后来者能有 ...

  2. C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法

    学C++的时候,这几个输入函数弄的有点迷糊:这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行) 1.cin 2.cin.get ...

  3. [转]C++中cin、cin.get()、cin.getline()、getline()函数的简单总结

    参考原文:http://www.cnblogs.com/flatfoosie/archive/2010/12/22/1914055.html,另外做了一些修改~ 1.cin 2.cin.get() 3 ...

  4. C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法(转)

    学C++的时候,这几个输入函数弄的有点迷糊:这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行) 1.cin 2.cin.get ...

  5. 【转载】关于C++中cin的几点说明性总结

    转载地址:http://www.07net01.com/program/289153.html 学C++的时候,这几个输入函数弄的有点迷糊:这里做个小结: 1.cin 2.cin.get() 3.ci ...

  6. C++中cin.get(),cin.getline(),cin>>,gets(),cin.clear()使用总结

    1.cin.get()  实质:类istream所定义对象cin的重载成员函数 用于读取单字符  istream& get(char&)    int get(void) 用于读取字符 ...

  7. c++中 cin、cin.get()、cin.getline()、cin.getchar()的区别

    ①cin>>:无法接收空格.Tap键且以空格.Tap键.回车符为分隔符: ②cin.get( ):可以接收空格.Tap键且以回车符为结束符: 一:可输入单个字符 格式: char ch; ...

  8. C++中cin.getline与cin.get要注意的地方

    cin.getline与cin.get的区别是,cin.getline不会将结束符或者换行符残留在输入缓冲区中.

  9. C++中cin的用法汇总

    cin可以用于接收输入,最常见的是从控制台接收.在刚学习C++的时候经常会用cin来接收数据,这里想要系统的总结一下cin的用法,保证不灌水. C++中的cin是一个 istream对象,从标准输入中 ...

  10. C++中cin输入问题

    场景:cin输入一个整数,但是在console输入了其他如字符,字符串.当判断输入错误再重新输入时[ 如while()内重复判断知道输入格式正确 ],可能进入死循环. 解释:console输入时所按的 ...

随机推荐

  1. mfc学习---文档视图架构

    MFC的AppWizard可以生成三种类型的应用程序:基于对话框的应用.单文档应用(SDI)和多文档应用(MDI).   一般情况下,采用文档/视结构的应用程序至少应由以下对象组成:       1. ...

  2. python中多重继承与获取对象

    1.python中多重继承 除了从一个父类继承外,Python允许从多个父类继承,称为多重继承. 多重继承的继承链就不是一棵树了,它像这样: class A(object): def __init__ ...

  3. 禁止电脑登陆QQ聊天系统的四种方法

    一.使用防火墙禁止端口法 QQ使用的默认端口是 UDP 4000,使用防火墙将该端口关闭,那么别人就不能使用QQ了,当自己需要上网时只需开放该端口就可以了. 下面以我使用的“金山网镖6”进行说明,点击 ...

  4. SElinux 读懂.te 定义自己的 .te【转】

    本文转载自:https://blog.csdn.net/kongbaidepao/article/details/61417291 一. .te 文件定义中的一些宏 1.1 unix_socket_c ...

  5. pexpect的pxssh类实现远程操作

    #!/usr/bin/pythonimport pexpectfrom pexpect import pxssh import getpasstry: s=pxssh.pxssh() hostname ...

  6. [BZOJ2717]迷路的兔子[构造]

    构造题…当然需要推(看)一推(看)规(题)律(解)啦... 其实是在Discuss那个CA的一句话题解里面翻到这个东西的... 用奇怪的姿势枚举一下...先贴代码 #include<bits/s ...

  7. 文件(1)--File

    File简介 Java.io.File用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录.File类只用于表示文件(目录)的信息(名称.大小等),不能对文件的内容进行 ...

  8. Hibernate的一级缓存、二级缓存和查询缓存。

    Hibernate的Session提供了一级缓存的功能,默认总是有效的,当应用程序保存持久化实体.修改持久化实体时,Session并不会立即把这种改变提交到数据库,而是缓存在当前的Session中,除 ...

  9. NumPy数学算数函数

    NumPy - 算数函数 很容易理解的是,NumPy 包含大量的各种数学运算功能. NumPy 提供标准的三角函数,算术运算的函数,复数处理函数等. 三角函数 NumPy 拥有标准的三角函数,它为弧度 ...

  10. C++ 进阶学习 ——模板

    模板和重载类似,比重载更省事 通常有两种形式:函数模板和类模板: 函数模板针对仅参数类型不同的函数: 类模板针对仅数据成员和成员函数类型不同的类. 一个简单的函数模板 template <cla ...