下面通过两个例子说明一下此cin和gets()区别:
#include<iostream>
using namespace std;
int main()
{
char str[20];
cin>>str;
cout<<str<<endl;
return 0;
}
输入:abc[空格]abc
输出:abc
#include<iostream>
using namespace std;
int main()
{
char str[20];
gets(str);
cout<<str<<endl;
return 0;
}
输入:abc[空格]abc
输出:abc[空格]abc
结论:cin不接受空格,TAB等键的输入,遇到这些键,字符串会终止,而gets()则接受连续的输入,包括空格,TAB;
gets()只能读取char类型,例如char s[10],gets(s);
gets()不能读取string类型;
string类型可用getline(),例如string s,getline(cin,s);
getchar()是用来吃掉回车符号的。
在需要连续输入回车的情况下,刚输入完一个字符串,后面还需要输入另一个,需要加一个getchar(),用来抵消那回车键,要不然第二个字符串会有问题。