一个关于c语言函数 fread读取有关问题
一个关于c语言函数 fread读取问题
用fread读取如图示所示文本,我是这样写的,下面是全部代码:
#include<iostream>
using namespace std;
typedef struct STUDENT
{
char id[10];
char name[20];
char score[4];
}Stu;
typedef struct college
{
char id[10];
char name[20];
char score[4];
}Col;
int main()
{
Stu stu[6];
Col col[6];
FILE *fp;
// char strscore[4];
char ch[500]={0};
for(int i=0;i<6;i++)
{
memset(&stu
,0,sizeof(stu[0]));
memset(&col[i],0,sizeof(col[0]));
}
if(!(fp=fopen("tt.txt","at+")))
{
cout<<"文件无法打开!"<<endl;
system("pause");
exit(0);
}
rewind(fp);
fgets(ch,500,fp);
for(i=0;i<6;i++)
{
fread(&col[i],sizeof(col[i]),1,fp);
fputc('\n',fp);
}
rewind(fp);
fgets(ch,500,fp);[img=][/img]
for(i=0;i<6;i++)
{
fread(&stu[i],sizeof(stu[i]),1,fp);
printf("%s %s %s\n",stu[i].id,stu[i].name,stu[i].score);
fgetc(fp);
}
return 0;
}
唉,插不了图;我画一个,框框是记事本
| 学号 姓名 计算机 |
| 1001 曹操 59.00 |
| 1002 貂蝉 85.00 |
| 1003 西施 56.00 |
| 1004 小乔 98.00 |
| 1005 大乔 89.00 |
| 1006 我是警察 100.00
|
|
|
|
|
|
|
|..................................................................................................
VC6.0运行结果如下图:框框是黑框
|----------------------------------------------------------------
|1001 曹操 59.00 曹操 59.00 9.0
|1002 貂蝉 85.00 貂蝉 85.00 5.0
|1003 西施 56.00 西施 56.00 6.0
|1004 小乔 98.00 小乔 98.00 8.0
|1005 大乔 89.00 大乔 89.00 9.0
|1006 我是警察 100.00 我是警察 100.00 0.00
|
|——————————————————————————————————-——————————————
在"我是警察" 100.00? 这个箭头是垂直的
|
[i]|
问题
[color=#808000][/color]
我想知道用fread函数如何才能正确的出来。
|
|
|
|
|
|
|
|
|
Answers
C/C++ code
#include<stdio.h> typedef struct STUDENT { char id[10]; char name[20]; char score[8]; }Stu; int main() { Stu stu[6]; FILE *fp; int i; char ch[500]={0}; if(!(fp=fopen("d:\\1.txt","r"))) { printf("文件无法打开!\n"); system("pause"); exit(0); } for(i=0;i<6;i++) { fscanf(fp," %s",stu[i].id); fscanf(fp," %s",stu[i].name); fscanf(fp," %s",stu[i].score); } fclose(fp); for(i=0;i<6;i++) { printf("%s %s %s\n",stu[i].id,stu[i].name,stu[i].score); } return 0; }