| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 734 人关注过本帖
标题:[求组]C++文件编译读写问题
取消只看楼主 加入收藏
末明黑夜
Rank: 1
等 级:新手上路
帖 子:12
专家分:5
注 册:2013-6-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
[求组]C++文件编译读写问题
程序代码:

#include "stdafx.h"
#include "stdio.h"
#include<iostream>
using namespace std;
#define SIZE 4
typedef struct student_type
{
  char name[10];
  int num;
  int age;
  char addr[15];
  struct student_type *next;
  }STUD;
STUD *indata (STUD *,STUD *head);
void savef(STUD *,STUD *head);
void loadf(STUD *,STUD *head);
void display(STUD *,STUD *head);
int main(int argc, char* argv[])
{   STUD *st,*so,*head;
    head=st=so=(STUD *)malloc(4*sizeof(STUD));
    indata(st,head);
    savef(st,head);
    loadf(so,head);
    display(so,head);
    return 0;
}
STUD *indata(STUD *s,STUD *head)
{short i;
STUD *snext;

cout<<"Input name num age addr for 4 students"<<endl;
scanf("%s %d %d %s",head->name,&head->num,&head->age,head->addr);

for(i=1;i<SIZE;i++)
{    snext=(STUD *)malloc(sizeof(STUD));
    scanf("%s %d %d %s",snext->name,&snext->num,&snext->age,snext->addr);
    s->next=snext;
    s=snext;
}
s->next=NULL;
return head;
}
void savef(STUD *s,STUD *head)
{
FILE *fp;
if((fp=fopen("d://stu.txt","wb"))==NULL)
   {cout<<"erro"<<endl;
    return;
   }
for(s=head;s->next!=NULL;s=s->next)
   {fwrite(s,sizeof(STUD),1,fp);
    
   }
fclose(fp);   
}
void loadf(STUD *s,STUD *head)
{
FILE *fp;
if((fp=fopen("d://stu.txt","rb"))==NULL)
   {fprintf(stdin,"cannot open file\n");
    return;
   }
for(s=head;s->next!=NULL;s=s->next)
    fread(s,sizeof(STUD),1,fp);
fclose(fp);
}
void display(STUD *s,STUD *head)
   {
      
       cout<<"Output..."<<endl;
       for(s=head;s->next!=NULL;s=s->next)
       {
           cout<<s->addr<<"  "<<s->num<<"  "<<s->age<<"  "<<s->name<<"  "<<endl;
       }
       
    }

程序输出然后在D://stu中显示的是乱码。。。这是为什么啊?我是在一本书上看见的,书上用的是数组,然后我想改成动态的指针来进行操作,然后就出现这样的问题了。小白求指点!
搜索更多相关主题的帖子: color 
2013-06-13 22:42
末明黑夜
Rank: 1
等 级:新手上路
帖 子:12
专家分:5
注 册:2013-6-13
收藏
得分:0 
回复 2楼 veketdelphi
额。。。可是我修改以后还是不行啊
输出还是乱码。。。。
2013-06-13 23:25
末明黑夜
Rank: 1
等 级:新手上路
帖 子:12
专家分:5
注 册:2013-6-13
收藏
得分:0 
回复 4楼 lintaoyn
谢谢啦!
我再去修改一下,看能不能成功
2013-06-14 19:15
末明黑夜
Rank: 1
等 级:新手上路
帖 子:12
专家分:5
注 册:2013-6-13
收藏
得分:0 
回复 4楼 lintaoyn
还是不行啊···我把name还有addr都申明成了STRING结果出来这东西
图片附件: 游客没有浏览图片的权限,请 登录注册

读写数据块.exe中的0x0fabdd6f(msvcr100d.dll)处有未经处理的异常:0xC0000005:写入位置0xcdcdcdcd时发生访问冲突
这是不是指针什么的问题啊?
2013-06-14 21:03
末明黑夜
Rank: 1
等 级:新手上路
帖 子:12
专家分:5
注 册:2013-6-13
收藏
得分:0 
回复 8楼 lintaoyn
呵呵,谢谢啦!我一开始以为是要用string代替char定义name和addr,然后就出现这个问题了。。。。
2013-06-14 22:10
快速回复:[求组]C++文件编译读写问题
数据加载中...
 
   



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

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