请精通C/C++的达人进,谢谢!
来源:百度知道 编辑:UC知道 时间:2024/05/25 12:36:51
麻烦帮我看看这段代码错在哪里,如果友人把它调试通了更好!谢谢啊!!!
# include <stdio.h>
int validate();
void show();
void studin();
int main()
{
char c1;
printf("请选择你要的操作:\na:学生信息录入;b:普通查询\n");
scanf("%c",&c1);
if(c1=='a')
void validate();//身份验证
else if(c1=='b')
void show();//进入查询
else
printf("操作错误!\n");
}
int validate()
{
char a[11]={"administer"};
char b[11];
char c[7]={"123456"};
char d[7];
printf("请输入你的用户名:");
scanf("%s",&b);
printf("请输入你的密码:");
scanf("%s",&d);
if ((!strcmp(a,b)) && (!strcmp(d,c) ))
printf("欢迎管理员
# include <stdio.h>
int validate();
void show();
void studin();
int main()
{
char c1;
printf("请选择你要的操作:\na:学生信息录入;b:普通查询\n");
scanf("%c",&c1);
if(c1=='a')
void validate();//身份验证
else if(c1=='b')
void show();//进入查询
else
printf("操作错误!\n");
}
int validate()
{
char a[11]={"administer"};
char b[11];
char c[7]={"123456"};
char d[7];
printf("请输入你的用户名:");
scanf("%s",&b);
printf("请输入你的密码:");
scanf("%s",&d);
if ((!strcmp(a,b)) && (!strcmp(d,c) ))
printf("欢迎管理员
在函数调用处,使用函数,而不是申明,即:
void validate();
改为
validate();
其它所有的情况都做类似处理。
字符串调用scanf函数,如:
char a[10];
scanf("%s", a);
而不是:
scanf("%s", &a);
因为字符串变量名本身就是一个常量指针,另外为了避免字符串超过定义的长度,最好加以限制,如:
char a[10];
scanf("%9s", a);
这样即使用户输入, "helloworldhelloworld"超过长度10(最后一个是\0)也能正确处理,而不至于出现不可预测的情况。
在:
if(fwrite(&stud[i],sizeof(struct student_type),1,fp)!=1)
z中将其中的struct去掉,即:
if(fwrite(&stud[i],sizeof(student_type),1,fp)!=1)
因为studengt_type本身就是一个结构类型。
if(c1=='a')
void validate();//身份验证
else if(c1=='b')
void show();//进入查询
这里是函数调用要用validate();show();
scanf("%s",&b);
scanf("%s",&d);
b,d本来就是个地址了。
void save(); 都不知道那里来的。而且所在位子是函数调用吧,不是函数声明吧?
if(fwrite(&stud[i],sizeof(struct student_type),1,fp)!=1) 这个是什么东西啊,不过我好久没有接触过C语言了,不清楚了。