getline第二次的输入
#include<iostream>#include<string>
using namespace std;
int main()
{
int t;
cin>>t;
struct vowel{
int a;
int e;
int i;
int o;
int u;
}s[t];
for(int i=0; i<t; i++)
{
s[i].a = 0;
s[i].e = 0;
s[i].i = 0;
s[i].o = 0;
s[i].u = 0;
}
int n = 0;
while(t--)
{
string a= "";
cin.get();
getline(cin,a);
cout<<a<<endl;
for(int i=0; a[i]!='\0'; i++)
{
if(a[i] == 'a')
{
s[n].a++;
}
if(a[i] == 'e')
{
s[n].e++;
}
if(a[i] == 'i')
{
s[n].i++;
}
if(a[i] == 'o')
{
s[n].o++;
}
if(a[i] == 'u')
{
s[n].u++;
}
}
n++;
}
for(int i=0; i<n; i++)
{
cout<<"a:"<<s[i].a<<endl;
cout<<"e:"<<s[i].e<<endl;
cout<<"i:"<<s[i].i<<endl;
cout<<"o:"<<s[i].o<<endl;
cout<<"u:"<<s[i].u;
if(i != n-1)
{
cout<<endl;
cout<<endl;
}
}
return 0;
}
就是当我第二次调用getline时我的string的第一个字符就被吃掉了。
大家帮忙看看什么毛病啊!附件是运行窗口。