一个关于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函数如何才能正确的出来。
|
|
|
|
|
|
|
|
|





c语言 函数 程序开发

eszeta 11 years ago


  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; }

lw0528 answered 11 years ago


<fieldset> <legend> 探讨 </legend>

c标准流的文本模式存在严重设计问题,不可能提供完美的功能。
</fieldset>


拉克丝X基拉 answered 11 years ago


c标准流的文本模式存在严重设计问题,不可能提供完美的功能。

evagun answered 11 years ago

Your Answer