目前共有24篇帖子。
今天上課寫的C程序
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

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
 
 
©2010-2025 Arslanbar [手機版] [桌面版]
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。