#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student
{
int num;
char name[20];
char gender;
int age;
float score;
};
void main()
{
/*FILE f, *fp;
struct student stu;
stu.age = 90;
stu.gender = 'm';
strcpy(stu.name, "曹磊");
stu.num = 68;
stu.score = 74.6f;
fp = fopen("haha.dat", "wb");
fwrite(&stu, sizeof(struct student), 1, fp);
f = *fp;
fclose(fp);
//printf("ptr: %s\n", f._ptr);
printf("cnt: %d\n", f._cnt);
//printf("base: %s\n", f._base);
printf("flag: %d\n", f._flag);
printf("file: %d\n", f._file);
printf("charbuf: %d\n", f._charbuf);
printf("bufsiz: %d\n", f._bufsiz);
printf("tmpfname: %s\n", f._tmpfname);*/
struct student stu;
FILE f;
int t = 0;
FILE *fp;
if ((fp = fopen("stu.dat", "rb")) == NULL)
{
printf("Can't open file\n");
exit(1);
}
printf("num\tname\tgender\tage\tscore\n");
while (fread(&stu, sizeof(struct student), 1, fp) == 1)
printf("%-8d%-10s%-5c%-5d%-4.2f\n", stu.num, stu.name, stu.gender, stu.age, stu.score);
//printf("ptr: %s\n", fp->_ptr);
//printf("base: %s\n", fp->_base);
//printf("tmpfname: %s\n", fp->_tmpfname);
fclose(fp);
if ((fp = fopen("f.dat", "rb")) == NULL)
{
printf("Can't open file\n");
exit(1);
}
printf("\nbufsize\tcharbuf\tcnt\tfile\tflag\n");
while (fread(&f, sizeof(FILE), 1, fp) == 1)
printf("%d\t%d\t%d\t%d\t%d\n", f._bufsiz, f._charbuf, f._cnt, f._file, f._flag);
fclose(fp);
/*char numstr[20], ch;
FILE file;
FILE *fp, *fp2;
if ((fp = fopen("stu.dat", "ab")) == NULL)
{
printf("Can't open file\n");
exit(1);
}
fp2 = fopen("f.dat", "ab");
do
{
printf("Enter number: ");
gets(numstr);
stu.num = atoi(numstr);
printf("Enter name: ");
gets(stu.name);
printf("Enter sex: ");
stu.gender = getchar();
getchar();
printf("Enter age: ");
gets(numstr);
stu.age = atoi(numstr);
printf("Enter score: ");
gets(numstr);
stu.score = (float)atof(numstr);
fwrite(&stu, sizeof(struct student), 1, fp);
printf("Have another student record(y/n)?");
ch = getchar();
getchar();
file = *fp;
fwrite(&file, sizeof(FILE), 1, fp2);
} while (ch == 'Y' || ch == 'y');
fclose(fp);
fclose(fp2);*/
}