原本的题目还要复杂,但本人发现就连读取这一步都是错误的,因此降低难度
很紧急,马上就要考试了,这是复习题(上学期考试题),坑爹没有答案啊
d.txt文件内有很多内容,格式如下(都是一些人物)
******************
HenryVII Tudor 1485
EdwardV Plantagenet 1460
RichardIII Plantagenet 1485
JamesI Stuart 1603
GeorgeI Brunswick-Lunenburg 1707
******************
按照要求我先用建立structure, 然后想用指针把所有数据存储,然后就是很简单的将数据复制到另一个txt文件中。最后一步其实只是为了验证前面没有出错。可是……根本没有可是,完全不能运行。
#include <stdio.h>
#include <stdlib.h>
// 鄙人建立了结构体
typedef struct person
{
char* last;
char* first;
char* year;
}person_t;
int main()
{
int i;
FILE *fp1,*fp2;
person_t *list = malloc(100*sizeof(person_t));
fp1=fopen("d.txt","r");
fp2=fopen("detail.txt","w");
if ((fp1 = fopen("d.txt", "r")) == NULL)
{
printf("Cannot open d.txt!\0");
exit(0);
}
for(i=0;i<5;i++)
{
fscanf(fp1,"%s %s %s\n",list.first+i,list.last+i,list.year+i);
}//我觉得问题应该是出在这里,但是试了几种方法全是报错
for(i=0;i<5;i++)
{
fprintf(fp2,"%s %s %s\n",(list+i)->first,(list+i)->last,(list+i)->year);
}
fclose(fp1);
fclose(fp2);
return 0;
}
BTW要是不用指针大概我也能做,就是要用指针才能符合要求。求救啊!!!!!!!!!
救命啊!!大神们帮帮我吧!!
如果你不想指定分配的内存长度,你可以按照下面的方法:
#include <stdio.h>