| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1105 人关注过本帖
标题:小白求大神指点,这个代码为什么实现不了功能?
只看楼主 加入收藏
小心心1997
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-12-29
结帖率:0
收藏
 问题点数:0 回复次数:3 
小白求大神指点,这个代码为什么实现不了功能?
我需要打一个可以实现对学生信息录入,浏览,查找,删除的代码,case3里面的函数chazhao是我之前定义好的,为什么调用在case3里面就实现不了功能啊       ( ⊙ o ⊙ ),求大神指点
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#define N 20struct student
#define SIZE 4
int num,age,i;
char name,sex;
 struct student
{
char name[10];//名字
int num;//学号
char sex[2];//性别
int age;//年龄
}student[SIZE];//定义全局结构体数据student

 void save()
   {
      FILE*fp;
      int i;
      if((fp=fopen("stu.dat","wb"))==NULL)
         {
            printf("cannot open file\n");
            return;
          }
      for(i=0;i<SIZE;i++)
      if(fwrite(&student[i],sizeof(struct student),1,fp)!=1)
      printf("file write error\n");
      fclose(fp);
   }
void luru()
   {
      printf("%d",sizeof(wchar_t));
      for(i=0;i<SIZE;i++)
         {  
            printf("请输入第%d个学生的信息:名字,学号,性别和年龄:\n",i+1);
               scanf("%s%d%s%d",student[i].name,&student[i].num,student[i].sex,&student[i].age);
            save();
          }
    }
void liulan()
    {
       FILE*fp;
       if((fp=fopen("stu.dat","rb"))==NULL)//打开输入文件stu.dat
         {
              printf("connot open file\n");
              exit(0);
         }
       printf("四个学生的信息如下:\n");
       for(i=0;i<SIZE;i++)
          {
             fread(&student[i],sizeof(struct student),1,fp);//从fp指向的文件读入一组数据
             printf("姓名:%s\t学号:%d\t性别:%s\t年龄:%d\n",student[i].name,student[i].num,student[i].sex,student[i].age);
           }
       fclose(fp);//关闭文件“stu_list”
    }
    void chazhao()
    {char s[15];  
          int i=0;  
          printf("请输入想查询的学号:");  
          scanf("\t%s",s);  
         while(strcmp(student[i].num,s)!=0&&i<SIZE)i++;                       //比较per[i].name与所输入学号是否相同//  
            if(i==SIZE)  
            {  
                printf("\t通讯录中没有此人!\n");  
                system("pause");  
                return;  
            }  
            printf("\t学号: %s\n",student[i].num);  
            printf("\t姓名: %s\n",student[i].name);
            printf("\t性别:%s\n",student[i].sex);
            printf("\t年龄: %d\n",student[i].age);  
    }
int main()
    {
       int i;
       int a;
       printf("※※※※※主※※※※※菜※※※※※单※※※※※\n");
       printf("※1、录入学生信息2、浏览学生信息※\n");
       printf("※3、查找学生信息4、删除学生信息※\n");
       printf("※5、退出系统※\n");
       printf("请输入编号(1-5):\n");
       scanf("%d",&a);
    switch(a)
      {
         case 1:luru();break;
         case 2:liulan();break;
         case 3:chazhao();break;
 
default:printf("输入错误!\n");
return;}}
   
搜索更多相关主题的帖子: include 结构体 信息 
2015-12-29 19:41
小心心1997
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-12-29
收藏
得分:0 
2015-12-29 19:44
alice_usnet
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:370
专家分:2020
注 册:2016-3-7
收藏
得分:0 
你的数据只是在文件中不在缓冲区怎么显示,应该在比较之前把文件数据读入内存缓冲区。


[此贴子已经被作者于2016-3-7 11:41编辑过]


未佩好剑,转身便已是江湖
2016-03-07 11:07
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:0 
编译的时候有这个告警:
1>c:\users\tr002\documents\visual studio 2015\projects\max.c\max.c\main.c(64): warning C4047: “函数”:“const char *”与“int”的间接级别不同
1>c:\users\tr002\documents\visual studio 2015\projects\max.c\max.c\main.c(64): warning C4024: “strcmp”: 形参和实参 1 的类型不同
student[i].num是int型,s也要改成int型并输入为数字,不能用strcmp来做比较,直接(student[i].num!=s)
2016-03-07 11:39
快速回复:小白求大神指点,这个代码为什么实现不了功能?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.080049 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved