zoukankan      html  css  js  c++  java
  • 关于cin, cin.get(), getchar(),getline()的字符问题

    一、getchar()和cin.get()

    getchar()会将开头的空格或者回车作为输入

    1 #include<iostream>
    2 using namespace std;
    3 int main(){
    4     char ch1 = getchar();
    5     char ch2 = getchar();
    6     cout<<ch1<<" "<<ch2;
    7     return 0;
    8 }

    输入 

    a b

    输出

    a

    1 #include<iostream>
    2 using namespace std;
    3 int main(){
    4     char ch1 = getchar();
    5     char ch2 = cin.get();
    6     cout<<ch1<<" "<<ch2;
    7     return 0;
    8 }

    输入 

    a b

    输出

    a

    二、cin

    cin不将开头的空格或者回车作为输入

    1 #include<iostream>
    2 using namespace std;
    3 int main(){
    4     char ch1 = getchar();
    5     char ch2;cin>>ch2;
    6     cout<<ch1<<" "<<ch2;
    7     return 0;
    8 }

    输入 

    a b
    或者
    a

    输出

    a b

    三、getline()

    getline()可以将开头的空格作为输入字符串的一部分,但是读回车时作为字符串的结束符

    1 #include<iostream>
    2 using namespace std;
    3 int main(){
    4     char ch1 = getchar();
    5     string s;
    6     getline(cin,s);
    7     cout<<ch1<<endl<<s;
    8     return 0;
    9 }

    输入 

    a hello 

    输出

    a
      hello

    输入 

    a 回车

    输出

    a
    a

    综上

    使用这些函数时要注意空格回车问题,吃字符问题。通常用getchar()或者cin.get()时通过再跟一个getchar()吃掉空格或者回车

  • 相关阅读:
    Vue源码解析
    开发调试的几个小技巧
    C#课后小作业
    C#随堂
    C#是数据类型
    插眼
    SQL基本的45题
    SQL创建数据库、建表、填入内容
    T-SQL语句基础
    SQL基本数据类型等
  • 原文地址:https://www.cnblogs.com/fresh-coder/p/14288449.html
Copyright © 2011-2022 走看看