CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

一个文件操作程序出现的问题

楼主talkingmute(CS-{Z})2004-12-01 08:52:09 在 C/C++ / C语言 提问

#include   <stdio.h>  
   
  #define   SIZE   4  
   
  struct   student_type  
  {  
   char   name[10];  
   int   num;  
   int   age;  
   char   addr[15];  
  }stud[SIZE];    
   
  void   save();   /*   原型 */  
  void   load();   /*   原型 */  
   
  void   main()  
  {   int   i;  
   for(i=0;   iSIZE;   i++)   /*   从键盘读入数据   */  
    scanf("%s%d%d%s",    
        stud[i].name,   &stud[i].num,   &stud[i].age,   stud[i].addr);    
   
   save();   /*   存盘   */  
   load();   /*   从盘读出   */  
   
   for(i=0;   iSIZE;   i++)   /*   屏幕上显示   */  
    printf("%-10s%4d%4d%-15s\n",   stud[i].name,   stud[i].num,   stud[i].age,   stud[i].addr);    
  }    
   
  void   save()    
  {   FILE   *fp;    
   int   i;    
   
   if   ((fp=fopen("stu_list",   "wb"))==NULL)    
   {    
    printf("can   not   open   file\n";    
    exit(0);    
   }    
   
   for(i=0;   iSIZE;   i++)    
   if   (fwrite(&stud[i],   sizeof(struct   student_type),   1,   fp)   !=   1)    
     printf("file   read   error\n");    
  }  
   
  void   load()    
  {   FILE   *fp;    
   int   i;    
   
   if   ((fp=fopen("stu_list",   "rb"))==NULL)    
   {    
    printf("can   not   open   file\n";    
    return;  
   }    
   
   for(i=0;   iSIZE;   i++)    
   if   (fread(&stud[i],   sizeof(struct   student_type),   1,   fp)   !=   1)    
   {    
     if   (feof(fp))   return;    
     printf("file   read   error\n");    
   }  
  }  
   
   
  用dev-c++编译后,出了好多处错误:stray   '\241'   in     program     这是怎么回事?? 问题点数:20、回复次数:7Top

1 楼grooving()回复于 2004-12-01 08:57:59 得分 10

代码中有全角字符。  
  删除所有的空格及空行。Top

2 楼darkstar21cn(≮天残≯无畏)(死亡进行时)回复于 2004-12-01 09:11:24 得分 10

for(i=0;   iSIZE;   i++)   ///////////////////////  
   
   if   ((fp=fopen("stu_list",   "rb"))==NULL)    
   {    
    printf("can   not   open   file\n";   /////////////////////////////////////  
    return;  
   }    
   
  楼主先把笔误改了再说。Top

3 楼talkingmute(CS-{Z})回复于 2004-12-01 09:36:22 得分 0

已经改了下,还是这么多错误!  
  #include   <stdio.h>  
  #define   SIZE   4  
  struct   student_type  
  {  
   char   name[10];  
   int   num;  
   int   age;  
   char   addr[15];  
  }stud[SIZE];    
   
  void   save();/*   原型 */  
  void   load();   /*   原型 */  
   
  void   main()  
  {   int   i;  
   for(i=0;i<SIZE;i++)   /*   从键盘读入数据   */  
    scanf("%s%d%d%s",stud[i].name,&stud[i].num,&stud[i].age,stud[i].addr);    
   save();   /*   存盘   */  
   load();   /*   从盘读出   */  
   
   for(i=0;i<SIZE;i++)   /*   屏幕上显示   */  
    printf("%-10s%4d%4d%-15s\n",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);    
  }    
   
  void   save()    
  {   FILE   *fp;    
   int   i;    
   
   if((fp=fopen("stu_list",   "wb"))==NULL)    
   {    
    printf("can   not   open   file\n");    
    exit(0);    
   }    
   
   for(i=0;i<SIZE;i++)    
   if(fwrite(&stud[i],sizeof(struct   student_type),1,fp)!=1)    
     printf("file   read   error\n");    
  }  
   
  void   load()    
  {   FILE   *fp;    
   int   i;    
   
   if((fp=fopen("stu_list","rb"))==NULL)    
   {    
    printf("can   not   open   file\n");    
    return;  
   }    
   
   for(i=0;i<SIZE;i++)    
   if(fread(&stud[i],sizeof(struct   student_type),1,fp)!=1)    
   {    
     if(feof(fp))   return;    
     printf("file   read   error\n");    
   }  
  }  
   
  Top

4 楼f26511314(我吃巧克力饼)回复于 2004-12-01 09:46:28 得分 0

#include   <stdio.h>  
  #include   <stdlib.h>  
   
  #define   SIZE   4  
  struct   student_type  
  {   char   name[10];  
      int   num;  
      int   age;  
    char   addr[15];  
  }stud[SIZE];    
   
  void   save();/*   原型 */  
  void   load();   /*   原型 */  
   
  void   main()  
  {    
  int   i;  
  for(i=0;i<SIZE;i++)   /*   从键盘读入数据   */  
  scanf("%s%d%d%s",stud[i].name,&stud[i].num,&stud[i].age,stud[i].addr);    
  save();   /*   存盘   */  
  load();   /*   从盘读出   */  
   
  for(i=0;i<SIZE;i++)   /*   屏幕上显示   */  
  printf("%-10s%4d%4d%-15s\n",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);    
  }    
   
  void   save()    
  {    
  FILE   *fp;    
  int   i;    
   
  if((fp=fopen("stu_list",   "wb"))==NULL)    
  {    
  printf("can   not   open   file\n");    
  exit(0);    
  }    
   
  for(i=0;i<SIZE;i++)    
  if(fwrite(&stud[i],sizeof(struct   student_type),1,fp)!=1)    
  printf("file   read   error\n");    
  }  
   
  void   load()    
  {    
  FILE   *fp;    
  int   i;    
   
  if((fp=fopen("stu_list","rb"))==NULL)    
  {    
  printf("can   not   open   file\n");    
  return;  
  }    
  for(i=0;i<SIZE;i++)    
  if(fread(&stud[i],sizeof(struct   student_type),1,fp)!=1)    
  {    
  if(feof(fp))   return;    
  printf("file   read   error\n");    
  }  
  }  
  Top

5 楼darkstar21cn(≮天残≯无畏)(死亡进行时)回复于 2004-12-01 09:57:30 得分 0

重新打一遍吧,正如   grooving()   所说,文件中有非ASCII字符存在,编译器不认知,所以报错了。Top

6 楼darkstar21cn(≮天残≯无畏)(死亡进行时)回复于 2004-12-01 10:03:09 得分 0

你的空格是全角空格吧?把它换成半角空格就好了。Top

7 楼talkingmute(CS-{Z})回复于 2004-12-03 18:38:08 得分 0

那能否通过#define把全角字符转换为半角字符呢?Top

相关问题

  • 求文件操作程序(简单)
  • 文件操作类,出现错误
  • 关于C语句的一个文件操作的程序
  • Java程序中能否直接操作本地文件?
  • 帮我看看这段文件操作的程序吧
  • 怎样监视另一个程序对文件的操作?急。
  • 关于文件操作的程序,帮着找错误!
  • 文件流操作 将程序的错误写成log!
  • 程序代码问题,关于文件操作。。。。。
  • windows2000服务程序文件操作的问题

关键词

  • 原型
  • null
  • stud
  • isize
  • fp
  • stu
  • age
  • fopen
  • struct student
  • addr

得分解答快速导航

  • 帖主:talkingmute
  • grooving
  • darkstar21cn

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo