目前共有24篇帖子。
|
21楼
202.115.90.*
2015-12-11 16:52
#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);*/ } |
|
|
22楼
202.115.90.*
2015-12-11 17:09
#include <stdio.h>
#include <stdlib.h> #include <string.h> struct student { int num; char name[20]; char gender; int age; float score; }; void main() { struct student stu; FILE *fp; int i; if ((fp = fopen("stu.dat", "rb")) == NULL) { printf("Can't open file\n"); exit(1); } printf("文件中保存的所有记录如下:\n"); 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("请输入要查看的记录编号:"); scanf("%d", &i); printf("第%d条记录的内容是:\n", i); fseek(fp, (i - 1) * sizeof(struct student), SEEK_SET); if (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); fclose(fp); } 文件中保存的所有记录如下: Num Name Gender Age Score 115 Tony 1 15 48.60 227 Tom 2 18 66.90 43 RPG 2 17 49.60 请输入要查看的记录编号:3 第3条记录的内容是: 43 RPG 2 17 49.60 Press any key to continue |
|
|
23楼
202.115.90.*
2015-12-11 17:09
num name gender age score
115 Tony 1 15 48.60 227 Tom 2 18 66.90 43 RPG 2 17 49.60 bufsize charbuf cnt file flag 4096 0 4060 3 10 Press any key to continue |
|
|
24楼
202.115.90.*
2015-12-11 17:11
stu.dat的内容如下:
sTony烫烫烫烫烫烫烫?烫?ffBB鉚om烫烫烫烫烫烫烫?烫?吞匓+RPG烫烫烫烫烫烫烫烫2烫?ffFB |