VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 660|回复: 5

[求助] 请问结构体如何写出到文件并读取?

[复制链接]
57_avatar_middle
在线会员 hanyuhang 发表于 2017-9-13 17:21:55 | 显示全部楼层 |阅读模式
麻烦帮忙看下我的代码为什么可以写出,但是无法读入==!
请问结构体如何写出到文件并读取? temp.zip (1.02 KB, 下载次数: 3)




上一篇:一个用 VS2010写的一个MFC运行界面的程序。我现在想改一下界面,能不能帮我参考一下!
下一篇:关于select模型的问题

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

77_avatar_middle
online_vip Health 发表于 2017-9-13 21:09:24 | 显示全部楼层
首先看第一眼你的代码就有问题:
  1. char sw;
  2. int main(){
  3.         while(1)
  4.         {
  5.                 switch(sw){
  6.                         case'1':add();break;
  7.                         case'2':find();break;
  8.                         case'0':return 0;}
  9.                 if (access("stu",0)!=0){
  10.             FILE *fp;
  11.                 fp=fopen("stu","wb");
  12.                 fclose(fp);        }
  13.         printf("请选择要进行的操作:\n");
  14.         printf("1、增加学生信息并保存\n");
  15.         printf("2、查询学生信息\n");
  16.         printf("0、退出\n");
  17.         scanf("%s",&sw);
  18.         }
  19. }
复制代码


默认初始化的时候全局变量 sw 根本没有初始化赋值,所以第一次进入 main 中的 while(1) 中的 switch(sw) 肯定会遇到问题的。楼主难道没发现?
先把这个解决了再说别的吧

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

57_avatar_middle
ico_lz  楼主| hanyuhang 发表于 2017-9-13 21:24:51 | 显示全部楼层
Health 发表于 2017-9-13 21:09
首先看第一眼你的代码就有问题:


好像能正常使用……如果程序不关,也是可以读取到数据的(应该是内存的数据==!)

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

14_avatar_middle
在线会员 liontxl 发表于 2017-9-18 20:16:52 | 显示全部楼层
  1. // 结构体读写文件.cpp : 定义控制台应用程序的入口点。
  2. //

  3. #include "stdafx.h"
  4. #include <iostream>
  5. #include <fstream>
  6. using namespace std;

  7. typedef struct
  8. {
  9.         char szName[24];
  10.         unsigned short unAge;
  11. }STUDENT, *LPSTUDENT;


  12. int _tmain(int argc, _TCHAR* argv[])
  13. {
  14.         fstream fOut;
  15.         fOut.open("./Config.txt", ios::out | ios::binary);
  16.         if (!fOut)return -1;
  17.        
  18.         LPSTUDENT stu = new STUDENT;
  19.         memset(stu, 0, sizeof(STUDENT));
  20.         memcpy(stu->szName, "Hello", sizeof("Hello"));
  21.         stu->unAge = 19;
  22.         fOut.write((char*)stu, sizeof(STUDENT));
  23.         fOut.close();
  24.         fOut.clear();
  25.         delete stu;
  26.         stu = NULL;

  27.         fstream fIn;
  28.         fIn.open("./Config.txt", ios::in | ios::binary);
  29.         if (!fIn)return -1;
  30.         stu = new STUDENT;
  31.         memset(stu, 0, sizeof(STUDENT));
  32.         fIn.read((char*)stu, sizeof(STUDENT));
  33.         fIn.close();
  34.         cout << stu->szName << endl << stu->unAge << endl;
  35.         delete stu;
  36.         stu = NULL;
  37.         system("pause");

  38.         return 0;
  39. }

复制代码

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

65_avatar_middle
在线会员 yaoyuanzhi 发表于 2017-9-19 10:37:59 | 显示全部楼层
建议用脚本描述性语言,这样子肯定是不行的。百度一下 XML或者JSON

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-9-26 21:31

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表