| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 482 人关注过本帖
标题:c 结构体文件储存问题
只看楼主 加入收藏
喻寒
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-7-9
结帖率:0
收藏
已结贴  问题点数:2 回复次数:2 
c 结构体文件储存问题
定义了一个结构体,在一个子函数中往里存储,无法从另一个子函数调用出来。其write1中 s.size[n]=strlen(s.data1[i]);
        printf("%d",s.size[n]);可以输出,主函数中printf("%d\n",s.size[0]);就不行,求帮助。
程序如下:
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
void write1();
void write2();
void write3();
void creat();
void scan();
int n=0;
  typedef struct
{
char name[80][80];                //存文件名
char data1[80][80];                //存入数据                     
char data2[80][80];
char data3[80][80];
int size[80];                      //存入字节数
}Seq;
void main()
{
    Seq s;
    char *k=NULL;
    k=(char *)malloc(100);
    //s=(char *)malloc(100);
    strcpy(s.name[0],"filename1");
    strcpy(s.name[1],"filename2");
    strcpy(s.name[2],"filename3");
    printf("是否创建文件  是(y) 否(n)");
    gets(k);
        if(*k=='y')
        {
    write1(s);        //输入文件信息
    printf("%d\n",s.size[0]);
    write2(s);
    write3(s);
        }
    scan(s,s.name,s.data1);              //扫描文件    ,
}
void write1(Seq s)          //创建文件1char *ch1
{
    char i=-1;
    FILE *fp;  
    if((fp=fopen(s.name[0],"w"))==NULL)
    {
       printf("can't open the file\n");
       exit(1);
    }
    printf("输入文件1信息:\n");
    while(*s.data1[i]!='\n')
    {
        i++;
        gets(s.data1[i]);
        s.size[n]=strlen(s.data1[i]);
        printf("%d",s.size[n]);
        strcat(s.data1[i],"\n");
        fputs(s.data1[i],fp);
        n++;
             }
    fclose(fp);
}
void write2(Seq s)   //创建文件2
{
    char j=-1;
    FILE *fp;  
    if((fp=fopen(s.name[1],"w"))==NULL)
    {
       printf("can't open the file\n");
       exit(1);
    }
    printf("输入文件2信息:\n");
    while(*s.data2[j]!='\n')
    {
           j++;
        gets(s.data2[j]);
        s.size[n]=strlen(s.data2[j]);
        strcat(s.data2[j],"\n");
        fputs(s.data2[j],fp);
        n++;
    }
             fclose(fp);
}
void write3(Seq s)           //创建文件3
{
    char k=-1;
    FILE *fp;
    if((fp=fopen(s.name[2],"w"))==NULL)
    {
       printf("can't open the file\n");
       exit(1);
    }
    printf("输入文件3信息:\n");
    while(*s.data3[k]!='\n')
    {
        k++;
        gets(s.data3[k]);
        s.size[n]=strlen(s.data3[k]);
        strcat(s.data3[k],"\n");
        fputs(s.data3[k],fp);
        n++;
             }
    fclose(fp);   
}

void scan(Seq s,char *ch,char *wh)   //char *ch,
{   
    FILE *fp;
    int f=1;              //控制字节变量
    int i,h;               //for循环变量
    h=1;                  //控制switch变量

  printf("%d\n",s.size[0]);
     if((fp=fopen(ch,"r"))==NULL)
  {
       printf("can't open the file\n");
       exit(1);
  }
//    for(i=0;i<n;i++)
    //   {
      fgets(s.data1[0],s.size[0]+1,fp);
          printf("%s",s.data1[0]);
//}
    /*while(!feof(fp))
    {
       for(i=0;i<n;i++)
       {
          fgets(s.data1[i],s.size[i],fp);
               if(strcmp(wh,"#include<filename")==0)
               {
                   switch(h)
                   {
                   case 1:h++;scan(s,s.name[f],s.data2);break;
                   case 2:s.data3;break;
                   }
            printf("''''''''\n");
            f++;
            printf("......");
            //printf("%s",s.data1[0]);
               }
          }
    }*/

    fclose(fp);
}


























搜索更多相关主题的帖子: include 结构体 
2014-07-09 17:12
loveClangage
Rank: 8Rank: 8
来 自:广东云浮
等 级:蝙蝠侠
帖 子:326
专家分:891
注 册:2013-8-23
收藏
得分:2 
问题不清楚,并且,只有2分,我这回复都有10个可用分了

编写的程序,不能改变世界,却可以改变自己...
2014-07-09 19:59
喻寒
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-7-9
收藏
得分:0 
回复 2 楼 loveClangage
是吗?刚玩这个,情况什么的还不太清楚啊!
2014-07-09 21:21
快速回复:c 结构体文件储存问题
数据加载中...
 
   



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

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