cin,scanf,gets,getline,getchar的一些区别和注意事项

时间:2021-01-01 01:52:11

cin:

输入结束条件 :遇到Enter、Space、Tab键。

scanf:

scanf 读取字符串时,当遇到空格、回车和Tab键都会认为输入结束。

gets:

一般只用于读取字符串,gets可以接收空格,遇到回车认为输入结束

getchar:

getchar()是在输入缓冲区顺序读入一个字符(包括空格、回车和Tab);注意,getchar函数只能接受单个字符,输入数字也按字符处理,输入多于一个字符时,只接收第一个字符

getline:

getline利用cin可以从标准输入设备键盘读取一行,不会忽略空格,以回车为结束

如果定义的是字符数组 char c[10],那么读入一行只能用gets(),不能用getline()

如果定义string s;输入不能用gets(),只能用getline();输出不能用printf(),只能用cout


举例:

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

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