allens 发表于 2015-5-12 21:03:27

标准IO问题


程序实现写入三个数据到文件,并读取数据显示到终端。
程序部分:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define NUM 3
struct test
{
   char name;
   int size;
}wr;
struct test re,second;
void set_test(struct test *pts, const char *ptr)
{
   strcpy(pts->name, ptr);
   pts->size = strlen(ptr);
}
int main(void)
{
   FILE *fp;
   int i;
   set_test(&wr, "Linux");
   set_test(&wr, "FreeBSD");
   set_test(&wr, "windows");
   fp = fopen("test.dat", "w");
   fwrite(wr, sizeof(struct test), NUM, fp);
   fclose(fp);

   fp = fopen("test.dat", "r");

   fread(re, sizeof(struct test), NUM, fp);
    fseek(fp,-2*sizeof(struct test),SEEK_END);
   fread(&second,sizeof(struct test),1,fp);
fclose(fp);
for(i = 0; i < NUM; i++)
{
   printf("name[%d]=%-20s, size[%d]=%d\n",
          i, re.name, i, re.size);
}
printf("Second name=%-20s, size=%d\n",second.name,second.size);
return 0;
}

红字部分何解,,新手求助;

ANDES 发表于 2015-5-13 18:05:57

struct test re,second;首先,不知道是不是你写多了个逗号或者是真的有这个逗号,假设没有这个逗号,那么就是定义结构体re【NUM】 再用 re【NUM】定义变量second。 能力有限,如果理解有错,还请多多指点。
页: [1]
查看完整版本: 标准IO问题