[求助]cin,getline()的用法
这是用于字符串排序的程序,输入n的字符串排序,用函数实现,函数参数为二维数组和字符串个数。我的程序运行时只能输入n -1个字符串,第一和第二次只能输入一个,我知道是cin.getline()的问题,可是由于初学,还不懂,请哪位朋友帮忙解释一下,谢谢
#include<iostream.h>
#include<string.h>
void px(char s[50][50],int n)
{
char *p[50],*p1;
int i,j,k;
for(i=0;i<n;i++)
p[i]=&s[i][0];
for(i=0;i<n;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(strcmp(p[k],p[j])>0)
k=j;
if(k!=i)
{
p1=p[i];
p[i]=p[k];
p[k]=p1;
}
}
cout<<"排序后的字符串为:\n";
for(i=0;i<n;i++)
cout<<p[i]<<endl;
}
void main()
{
char s[50][50];
int i,n;
cout<<"请输入需要排序的字符串的个数:";
cin>>n;
for(i=0;i<n;i++)
{
cout<<"请输入第"<<i+1<<"字符串:"<<'\n';
cin.getline(s[i],50);
}
px(s,n);
}