首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c处理文件解决办法

2012-03-18 
c处理文件文件a.dic、b.dic、c.dic中分别存有张三的三科成绩,每个文件都是16字节:前8个字节存储其英文名字zh

c处理文件
文件a.dic、b.dic、c.dic中分别存有张三的三科成绩,每个文件都是16字节:前8个字节存储其英文名字zhangsan,后面是一个空格,其后的2个字节存储其年龄(文本方式存储),后面也是一个空格,最后4个字节存储的是某科考试成绩(二进制方式存储)。键盘输入一个数字(1,2,3),根据输入的数字从相应的文件中读出张三的数据并显示。

数字和文件的对应关系是:

1----a.dic

2----b.dic

3----c.dic

特别注意:OJ上不允许使用fseek函数


Input

输入1、2、3中的一个


Output

输出张三的数据,每项一行


Sample Input
1
Sample Output
zhangsan
19
86

三个文件磁盘中已存在

[解决办法]
个人认为只需要读取就行了吧。用的Visual C++ 6.0,成绩不知道你是要用int还是float。

C/C++ code
#include <stdio.h>#pragma pack(1)typedef struct StudentScore{    char name[8];    char sp1;    char age[2];    char sp2;    int score;}StudentScore;#pragma pack()int main(){    char filename[]="x.dic";    FILE* file;    StudentScore ss;    scanf("%c",&filename[0]);    filename[0]+=0x30;    file=fopen(filename,"r+b");    if(file)    {        if(sizeof(StudentScore)==fread(&ss,1,sizeof(StudentScore),file))        {            ss.sp1=ss.sp2='\0';            printf("%s\n%s\n%d\n",ss.name,ss.age,ss.score);                    }        fclose(file);    }    return 0;}
[解决办法]
作业?

热点排行