C++ 标准输入流总结

来源:互联网 发布:百度软件市场 编辑:程序博客网 时间:2024/05/18 00:37

    既然上一篇文章对标准输出流cout的格式化输出进行了总结,那么这篇文章就对c++的标准输入流用法进行全面总结。

    以下是关于C++编程中cin的几个常见用法:

    1. cin

    用法1:最基本,也是最常用的用法,输入一个数字:

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

    输入:2[回车]3[回车]

    输出:5

    注意:>> 是会过滤掉不可见字符(如 空格 回车,TAB 等)   

cin >> noskipws >> input[j]; //不想略过空白字符,那就使用 noskipws 流控制

    用法2:接受一个字符串,遇“空格”、“TAB”、“回车”都结束  

#include <iostream>using namespace std;int main(){    char a[20];    cin >> a;    cout << a << endl;    return 0;}

    输入:jkljkljkl

    输出:jkljkljkl

    输入:jkljkl jkljkl //遇空格结束

    输出:jkljkl 

   

    2. cin.get() 

     用法1: cin.get(字符变量名)可以用来接收字符    

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

    输入:jljkljkl

    输出:j

    用法2:cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格   

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

    输入: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;int main(){    char m[20];    cin.getline(m, 5);    cout << m << endl;    return 0;}

    输入:jkljkljkl

    输出:jklj

    接受5个字符到m中,其中最后一个为'\0',所以只看到4个字符输出

    如果把5改成20:

    输入:jkljkljkl 输出:jkljkljkl

    输入:jklf fjlsjf fjsdklf

    输出:jklf fjlsjf fjsdklf


    4. getline()

    用法:接受一个字符串,可以接收空格并输出,需包含string头文件   

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

    输入:jkljkljkl

    输出:jkljkljkl

    输入:jkl jfksldfj jklsjfl

    输出:jkl jfksldfj jklsjfl

    和cin.getline()类似,但是cin.getline()属于istream流,而getline()属于string流,是不一样的两个函数


    5. gets()

    用法:接受一个字符串,可以接收空格并输出,需包含string头文件  

#include <iostream>#include <string>using namespace std;int main (){    char m[20];    gets(m);     //不能写成m=gets();    cout << m << endl;    return 0;}

    输入:jkljkljkl

    输出:jkljkljkl

    输入:jkl jkl jkl

    输出:jkl jkl jkl


    6. getchar()

    用法:接受一个字符,需包含string头文件 

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

    输入:jkljkljkl

    输出:j



0 0
原创粉丝点击