为什么我把文件内容以结构体形式读取时,总是缺少首字符呢???
#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");
}