大家帮忙找下这个函数的问题

来源:百度知道 编辑:UC知道 时间:2024/06/25 09:32:25
void Search(Student stud[],int n, int i=0) /*查找并显示一个记录*/
{
int s,s1;
char name1[20];
cout<<"输入学生的学号(键入1)或者姓名(键入2):"<<endl;
cin>>s1;
switch(s1)
{
case 1:cout<<"输入学号:"<<endl;
cin>>s;
while((stud[i].number-s)!=0&&i<n) i++; /*查找判断*/
if(i==n)
{
cout<<"=====>提示:对不起,无该学生的成绩……"<<endl; /*输入失败信息*/
return;
}
break;
case 2:cout<<"输入学生姓名:"<<endl;
cin>>name1[20];
while(strcmp(stud[i].name,name1)!=0&&i<n) i++;
if(i==n)
{
cout<<"=====>提示:对不起,无该学生的成绩……"<<endl; /*输入失败信息*/
return;
}
break;
}
cout<<"---------------------------"<<endl;
cout<<"班别:"<<stud[i].class_0<<endl; /*输出该学生信息*/
cout<<"学号:"<<stud[i].number<<endl;
cout<<&

case 2:cout<<"输入学生姓名:"<<endl;
cin>>name1[20];
应该是这里有问题。C++里输入字符串的时候只需要提供字符转的名称,不需要下标。你那种写法会把name1看作一个字符串的数组,而把输入的字符串放在下标为20的元素里。这样的话strcmp(stud[i].name,name1)肯定不会等于0。把它改成cin >> name1;。

字符串能处理中文?

cin>>name1[20]; 这句改成 cin >> name1;