CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

关于文件的读写---请来帮我!如何在实现自动读写文件数据

楼主ct520520(我们这里在下雪)2003-08-01 19:26:09 在 VC/MFC / 基础类 提问

初来公司,我们老大交给我一个小项目想看看我们水平,本想一个星期搞定,可遇到了几个小问题,现在己是第八天!  
              如何在实现自动读写文件数据。我要把键表中的数据存在一个   .txt文件里,并自动读出。对此.txt   文件的格式有要求。  
          我用了fprintf()函数很好的控制了其写入格式,可用fscanf()读的时候则数据混乱。  
   
  fprintf(stream,"%4d|%4s%12s%19s|%6d\n",d,s,b,c,l,);  
  读:  
  fscanf(stream,"%4d|%4s%12s%19s|%6d\n",&d,s,b,c,&l,);  
   
   
  如果写入为  
                      0001|程去|1111122222222|444444444444444444|111111\n  
   
   
  则读出结果为:  
  d=0001;  
  d=b=c=“程去”  
  l=无值  
   
  开发工具为vc;  
      我用了CFile类,但因为水平低,也没有解决。  
      如何把键表中的数据自动写入数出,并保证文件格式.  
   
   
  请有解决方案的朋友帮忙;  
                                      --------新手  
                                                        ct520520_8@hotmail.com  
   
   
   
   
   
  问题点数:20、回复次数:9Top

1 楼ChChip(ChChip)回复于 2003-08-01 19:40:55 得分 5

你可以把链表中的数据利用序列化的方法来保存,读取也一样,实现不是很困难,参考一下VC方面的书,都有介绍的。Top

2 楼kui(kui)回复于 2003-08-01 22:09:32 得分 5

我在一些程序开发中体会到了用XML的文件格式的好处,并自己做了一个类来读写XML文件,函数都是自己想要的,很方便。但现在你改用XML是来不急了,但以后可以考虑。Top

3 楼BSRONG(戎亚新)回复于 2003-08-02 11:37:29 得分 5

你用fread吧  
  fscanf(stream,"%4d|%4s%12s%19s|%6d\n",&d,s,b,c,&l,);  
  fread(&d,sizeof(int),1,stream);  
  fread(s,4,1,stream);  
   
  fread(b,12,1,stream);  
   
  fread(c,19,1,stream);  
  fread(&l,sizeof(int),1,stream);  
   
  fscanf(stream,"%4d|%4s%12s%19s|%6d\n",&d,s,b,c,&l,);Top

4 楼nonocast(如果没有如果)回复于 2003-08-02 12:20:04 得分 0

把“|”换成空格试试Top

5 楼farfh(阿远之哈儿)回复于 2003-08-02 12:40:11 得分 0

用struct,格式很好固定啊,保证不会出错Top

6 楼ct520520(我们这里在下雪)回复于 2003-08-02 16:30:53 得分 0

关键是要保证文件内部的格式,请问struct如何定位啊!能否给我一段代码参考啊!  
   
   
  救急.........Top

7 楼DaHunHun(顺其自然吧)回复于 2003-08-02 17:33:57 得分 0

可以用CFile   file;file.Write()   写文件,   用Read()读文件,读出来再进行格式转换就可以啦;Top

8 楼farfh(阿远之哈儿)回复于 2003-08-03 16:41:00 得分 5

#include   "stdio.h"  
  #include   "stdlib.h"  
  typedef   struct   _tests  
  {  
  int   a,b,c,d;  
  char   s[6];  
  }tests,*ptests;  
  void   writefile(ptests   p)  
  {  
  FILE*   fp=fopen("test.txt","a+b");  
  fwrite(p,sizeof(tests),1,fp);  
  fclose(fp);  
  }  
  void   readfile(ptests   p)  
  {  
  FILE*   fp=fopen("test.txt","r");  
  fseek(fp,0,SEEK_SET);  
  fread(p,sizeof(tests),1,fp);  
  fclose(fp);  
  }  
  void   main()  
  {  
  tests   t={1,2,3,4,"测试"};  
  writefile(&t);  
  tests   t2;  
  readfile(&t2);  
  printf("Read   message:%4d,%4d,%4d,%4d,%s",t2.a,t2.b,t2.c,t2.d,t2.s);  
  getchar();  
  }Top

9 楼farfh(阿远之哈儿)回复于 2003-08-03 16:43:42 得分 0

在struct中定义你想要排列的格式就成了,将来觉得这个格式不合意,随时可以修改结构体,相对来说,我觉得比较简单一些Top

相关问题

  • 如何实现将mdb或其它数据库文件加密成.asp文件?
  • jsp如何实现往客户端写数据文件
  • 怎么实现直接从数据库中下载文件
  • 如何用jsp实现oracle数据库中的文件下载??
  • 如何实现将StringGrid中数据导出到excel文件中
  • java中文件数据过滤的实现
  • Excel文件如何实现更新sql 数据库?
  • 文件实现数据库功能!请帮忙,谢谢
  • 关于读取csv文件数据——asp实现
  • 如何实现大数据量的文件快速操作?

关键词

  • 文件
  • 数据
  • xml
  • t2
  • fread
  • 格式
  • fscanf
  • ptests
  • 写入
  • stream

得分解答快速导航

  • 帖主:ct520520
  • ChChip
  • kui
  • BSRONG
  • farfh

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

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