cin.get 和cin.getline的问题

来源:百度知道 编辑:UC知道 时间:2024/04/20 21:08:29
#include <iostream>
using namespace std;

int main()
{
char stringOne[256];
char stringTwo[256];
char stringThree[256];

cout << "Enter string one: ";
cin.getline(stringOne,256);
cout << "stringOne: " << stringOne << endl;

cout << "Enter string two: ";
cin >> stringTwo;
cout << "stringTwo: " << stringTwo << endl;

cout << "Enter string three: ";
cin.getline(stringThree,256);
cout << "stringThree: " << stringThree << endl;
return 0;
}
cin.get和cin.getline我看到的区别是前者将换行符放在缓冲区中,后者是抛弃换行符(我理解抛弃是既不在缓冲区也没保存)
我的疑惑是第一个用cin.getline时stringtwo输出是换行了的,而在第二次用的时候stringthree却没有换行,不解啊,好像换cin.get也一样

这个是cin的问题所在
如果象这样就好了
#include <iostream>
using namespace std;

int main()
{
char stringOne[256];
char stringTwo[256];
char stringThree[256];

cout << "Enter string one: ";
cin.getline(stringOne,256);
cout << "stringOne: " << stringOne << endl;

cout << "Enter string three: ";
cin.getline(stringThree,256);
cout << "stringThree: " << stringThree << endl;

cout << "Enter string two: ";
cin >> stringTwo;
cout << "stringTwo: " << stringTwo << endl;
return 0;
}

都可以换行的

我也不解了很久....