• getline()、cin.getline()、cin.get()的区分和应用


    cin.getline()和cin.get()

    先说结论:
    getline()位于#include<string>
    getline()以回车作为结束,并在最后抛弃了作为回车
    getline()主要用于输入字符串(string )
    cin.getline()和cin.get()两者都主要用于输入字符型数组(位于#include<iostream>)
    cin.getline()以回车结束输入,并且抛弃最后的回车;
    cin.get()也是以回车结束输入,但最后回车会留在缓存区,如果下一次继续再次输入,回车会被读取;
    解决方法:在cin.get()函数输入结束后紧跟着一个cin.get()接受回车;

    拓展:
    cin、scanf()也是会将回车留在缓存区,可以用getchar()接收回车

    举例

    1、
    我的准备输入样例:

    hello  world
    I love you
    long time no see
    

    实际输入

    hello  world
    I love you
    

    输入输出:

    #include<iostream>
    #include<stdio.h>
    #include<string>
    using namespace std;
    int main() {
    	string s,s1;
    	char s2[100],s3[100];
    	getline(cin, s);//读入了“hello world”
    	cin.get(s2, 20);//读入了“I love you”
    	cin.getline(s3, 20);//读入了回车(即上一次输入结束的标志:回车,留在了缓冲区被下一次读取)
            //在第二次读入“I love you”回车后直接进行了输出,原本准备的“long time no see”没有机会输入直接输出,原因是回车被读入了s3
    	cout << s << endl;//输出了“hello world”再回车
    	cout << s2 << endl;//输出了“I love you”再回车
    	cout << s3 << endl;//输出了回车,再回车
    	return 0;
    }
    

    2、
    我的实际输入:

    hello  world
    I love you
    long time no see
    
    #include<iostream>
    #include<stdio.h>
    #include<string>
    using namespace std;
    int main() {
    	string s,s1;
    	char s2[100],s3[100],s4[100];
    	getline(cin, s);//读入了“hello world”
    	cin.get(s2, 20);//读入了“I love you”
    	cin.getline(s3, 20);//读入了回车(即上一次输入结束的标志:回车,留在了缓冲区被下一次读取)
    	cin.getline(s4, 20);//读入了“long time no see”
    	cout << s << endl;//输出了“hello world”再回车
    	cout << s2 << endl;//输出了“I love you”再回车
    	cout << s3 << endl;//输出了回车,再回车
    	cout << s4 << endl;//输出了“long time no see”
    	return 0;
    }
    

    输出结果:

  • 相关阅读:
    IOS GameCenter验证登陆
    BZOJ 1597: [Usaco2008 Mar]土地购买 斜率优化
    Hihocoder #1602 : 本质不同的回文子串的数量 manacher + BKDRhash
    HDU 5343 MZL's Circle Zhou 后缀自动机+DP
    HDU 6208 The Dominator of Strings 后缀自动机
    SPOJ SUBLEX
    SPOJ LCS2
    .NET平台技术体系梳理+初学者学习路径推荐+我们的愿景与目标
    扑克模拟,牌型判断java版
    一道综合练习题实践list及dictionary集合类
  • 原文地址:https://www.cnblogs.com/xiao-qingjiang/p/12738065.html
Copyright © 2020-2023  润新知