| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 379 人关注过本帖
标题:调用文件的问题!
只看楼主 加入收藏
灵韵
Rank: 1
来 自:惠州
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-11-18
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
调用文件的问题!
#include "stdio.h"
#define N 2
struct student
{
  long int num;
  char name[20];
  int cj[3];
  } stud[N];
 void save()/*建立文件*/
 {
   FILE *fp;
   int i;
   if((fp=fopen("student.txt","wb"))==NULL)
   {
     printf("error");
     exit(0);
    }
   for(i=0;i<N;i++)
     if(fwrite(&stud[i],sizeof( struct student),1,fp)!=1)
      {
        printf("no\n");
        exit(0);
       }
   fclose(fp);
  }
  main()
  {  FILE *fp;
    int i;
    for(i=0;i<N;i++)
    {
      scanf("%ld %s %d %d %d",&stud[i].num,&stud[i].name,&stud[i].cj[1],&stud[i].cj[2],&stud[i].cj[3]);
      printf("%ld,%s,%d,%d,%d\n",stud[i].num,stud[i].name,stud[i].cj[1],stud[i].cj[2],stud[i].cj[3]);
    }
    save();
    if((fp=fopen("student.txt","rb"))==NULL)
      {
        printf("no");
        exit(0);
        }
    while(!feof(fp))
    {
      fread(&stud+i,sizeof(struct student),1,fp);
      printf("%ld,%s,%d,%d,%d\n",stud[i].num,stud[i].name,stud[i].cj[1],stud[i].cj[2],stud[i].cj[3]);
      i++;
     }
     getch();
   }
为什么输出的文件和输进的数据不同!!
搜索更多相关主题的帖子: 文件 
2010-01-03 21:56
指手画脚
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:334
专家分:560
注 册:2009-12-28
收藏
得分:20 
错的地方太多了 都是越界问题:
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

#define N 2

struct student
{
    long num;
    char name[20];
    int cj[3];
} stud[N];

void save()/*建立文件*/
{
    FILE *fp;
    int i;
    if((fp=fopen("student.txt","wb"))==NULL)
    {
        printf("error");
        exit(0);
    }
    for(i=0;i<N;i++)
    {
        if(fwrite(&stud[i],sizeof( struct student),1,fp)!=1)
        {
            printf("no\n");
            exit(0);
        }
    }
    fclose(fp);
}

int main()
{ 
    FILE *fp;
    int i = 0;
    for(i=0;i<N;i++)
    {
        scanf("%ld %s %d %d %d",
            &stud[i].num, 
            stud[i].name,
            &stud[i].cj[0],
            &stud[i].cj[1],
            &stud[i].cj[2]);
        printf("%ld,%s,%d,%d,%d\n",
            stud[i].num,stud[i].name,
            stud[i].cj[0],
            stud[i].cj[1],
            stud[i].cj[2]);
    }

    save();

    if((fp=fopen("student.txt","rb"))==NULL)
    {
        printf("no");
        exit(0);
    }

    i = 0;
    while(!feof(fp))
    {
        fread(&stud+i,sizeof(struct student),1,fp);
        printf("%ld,%s,%d,%d,%d\n",
            stud[i].num
            ,stud[i].name,
            stud[i].cj[0],
            stud[i].cj[1],
            stud[i].cj[2]);
        i++;
    }
    fclose(fp);
    getch();
    return 0;
}

世界很简单 是非很复杂
有些东西是你的 但是你质疑的多了 可能就不是你的了
2010-01-03 22:45
灵韵
Rank: 1
来 自:惠州
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-11-18
收藏
得分:0 
回复 2楼 指手画脚
谢谢
我发一个很低级的错误,不好意思
2010-01-03 23:01
灵韵
Rank: 1
来 自:惠州
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-11-18
收藏
得分:0 
但是我还有一个问题,为什么最后会有很四个“0”
2010-01-03 23:10
指手画脚
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:334
专家分:560
注 册:2009-12-28
收藏
得分:0 
你说返回值么 习惯而已

世界很简单 是非很复杂
有些东西是你的 但是你质疑的多了 可能就不是你的了
2010-01-04 11:15
快速回复:调用文件的问题!
数据加载中...
 
   



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

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