C++中的几个输入函数:cin,cin.get(),getline(),cin.getline() 的区别

目录

cin>>

cin.get()

getline()

cin.getline()

cin>>

属于istream流

1)用于输入数字。

#include <iostream>
using namespace std;
int main()
{
    int a, b;
    cin >> a >> b;
    cout << a << '\n' << b << endl;
}

2)接收一个字符串,与空格,TAB,回车键读取都会结束。

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

cin.get()

 属于istream流

1)可以用来接收字符

cin.get( [字符变量名] )

[字符变量名] = cin.get();

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

2)接收一个字符串,可以接收空格。

cin.get( [字符指针(char *)], 字符串长度 )

#include <iostream>
using namespace std;
int main()
{
    char str[1000];
    cin.get(str, 100); 
    cout << str << endl;
}

getline()

用getline()读取多行文本(包含空格,以字符delim结束,默认以回车键结束)

需包含  #include <string>

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string str;
    getline(cin, str);
    cout << str << endl; 
}

C++11中的原型是:

(1)
istream&getline(istream&is,string&str,char delim);
istream&getline(istream && is,string&str,char delim);
(2)
istream&getline(istream&is,string&str);
istream&getline(istream && is,string&str);

 其中 istream &is 表示一个输入流,如 cin;string&str 表示把从输入流读入的字符串存放在这个字符串类型 str 当中(可以自己随便命名,str什么的都可以);char delim表示遇到这个字符停止读入,在不设置的情况下系统默认该字符为'\n',也就是回车换行符(遇到回车停止读入)。


cin.getline()

可以读取整行文本(可以包含空格)

#include <iostream>
using namespace std;
int main()
{
    char str[1000];
    int n = 100; // n 的大小不能超过1000
    cin.getline(str, n); // 接受小于等于100个字符的输入,包括最后一个'\0',但不能超过100个
    cout << str << endl;
}

cin.getline()实际上有三个参数:

cin.getline( [字符指针(char *)], [字符串长度], [结束字符] );

当第三个参数省略时,系统默认为'\0'。

当用在多维数组时,可以用cin.getline(m[i], n);

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

猜你喜欢

转载自blog.csdn.net/Doutd_y/article/details/82192750