求C++高手帮我(我是菜鸟~~对cin,cin.getline(),getline()不了解……)求找错

来源:百度知道 编辑:UC知道 时间:2024/06/07 05:18:17
#include<iostream>
#include<string>
using namespace std;

int main()
{
int n,size,a,e,o,u,i;
string p;
cin>>n;

for(int j=0;j<n;j++)
{
a=e=i=o=u=0;
getline(cin,p);

size=p.size();
for(int k=0;k<size;k++)
{
if(p[k]==97)
a++;
if(p[k]==101)
e++;
if(p[k]==105)
i++;
if(p[k]==111)
o++;
if(p[k]==117)
u++;
}
cout<<"a:"<<a<<endl
<<"e:"<<e<<endl
<<"i:"<<i<<endl
<<"o:"<<o<<endl
<<"u:"<<u<<endl;

if(j!=n-1)
cout<<endl;

}

return 0;
}

我知道了
你的cin>>n之后并没有读入换行
然后getline(cin,p)就读入了n之后的换行
你只要在cin>>n;之后再加上一句getline(cin,p);就可以了
具体程序如下:
#include<iostream>
#include<string>
using namespace std;
int main()
{
int n,size,a,e,o,u,i;
string p;
cin>>n;getline(cin,p);
for(int j=0;j<n;j++)
{
a=e=i=o=u=0;
getline(cin,p);
size=p.size();
for(int k=0;k<size;k++)
{
if(p[k]==97)a++;
if(p[k]==101)e++;
if(p[k]==105)i++;
if(p[k]==111)o++;
if(p[k]==117)u++;
}
cout<<"a:"<<a<<endl<<"e:"<<e<<endl<<"i:"<<i<<endl<<"o:"<<o<<endl<<"u:"<<u<<endl;
if(j!=n-1)cout<<endl;
}
return 0;
}

加分哦!!