| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 423 人关注过本帖
标题:为什么我把文件内容以结构体形式读取时,总是缺少首字符呢???
只看楼主 加入收藏
尘埃落雪
Rank: 2
等 级:论坛游民
帖 子:34
专家分:17
注 册:2010-6-7
结帖率:88.89%
收藏
已结贴  问题点数:10 回复次数:2 
为什么我把文件内容以结构体形式读取时,总是缺少首字符呢???
#include<stdio.h>
#include<stdlib.h>


/*
   2012.3.31
              为什么会缺少第一个字母呢????没有错误吧??
 */
main()
{   
   FILE *f1;
   char c;
   //文法数组中的计数
   int i=0;
   //文法输出时的计数
   int j=0;
   
   //原始文法的产生式集  
   typedef struct
   {
      char formula[200];        
   }grammarElement ;
   
   grammarElement gramOldSet[200],*ptr;
   
   ptr=gramOldSet;
   //应该每一行读进一个结构体中
   f1=fopen("fomula_input.txt","r");
   
   while(c=getc(f1)!=EOF)
   {    i=0;
       //这一部分有错误???
       while((c=getc(f1))!='\n')
       {  
         (*ptr).formula[i]=c;
         i++;                    
       }
       //每个数组结束的时候添加"\0"
      (*ptr).formula[i]='\0';
        
       ptr++;
       j++;
   }
   fclose(f1);

   ptr=gramOldSet;

   while(ptr<gramOldSet+j)
   {  
      
     //文法按行输入、出   
          printf("%s",(*ptr).formula);
     printf("\n");
     ptr++;                  
   }
   
    printf("\n");   
   system("pause");
           
}
搜索更多相关主题的帖子: 计数 include 结构体 
2012-04-02 17:15
NoSoul
Rank: 9Rank: 9Rank: 9
来 自:沈阳化工大学
等 级:蜘蛛侠
帖 子:283
专家分:1010
注 册:2009-6-6
收藏
得分:5 
程序代码:
while((c=getc(f1))!=EOF)
    {
        i=0;
        do
        {
            (*ptr).formula[i]=c;
            i++;
        }
        while((c=getc(f1))!='\n');
        //每个数组结束的时候添加"\0"
        (*ptr).formula[i]='\0';
        ptr++;
        j++;
    }

我想伸手拉近點,竟觸不到那邊,就欠一點點,但這一點點...卻好遠
2012-04-02 17:42
wyk565542030
Rank: 2
等 级:论坛游民
帖 子:8
专家分:55
注 册:2012-3-30
收藏
得分:5 
你连续读了两次
while((c=getc(f1))!=EOF)
{
    while((c=getc(f1))!='\n')
    {
    。。。
    }
}
第一个就没了 我是这样认为的
2012-04-02 22:40
快速回复:为什么我把文件内容以结构体形式读取时,总是缺少首字符呢???
数据加载中...
 
   



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

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