浮点输出的后续问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 22:14:48
#include <stdio.h>
#include <stdlib.h>
#define N 100

struct CLIENT
{
int number;
char name[10];
float load;
}client[N],clie[N];

void menu(struct CLIENT clie[N],int n);
void list_1(struct CLIENT clie[N],int n);
void list_2(struct CLIENT clie[N],int n);
void list_3(struct CLIENT clie[N],int n);

void main()
{
int i,n;
FILE* fp;
if((fp=fopen("client.dat","r"))==NULL)
{
printf("Error opening the file.\n");
exit(1);
}

i=0;
while(!feof(fp))
{
fscanf(fp,"(%d) %10d %10s %10f\n",i+1,client[i].number,client[i].name,client[i].load);
i++;
}

n=i-1;
fclose(fp);
menu(clie,n);
}

void menu(struct CLIENT clie[N],int n)
{
char choice;

printf("This programme output the pointed list.:\n\n");

fscanf(fp,"(%d) %10d %10s %10f\n",i+1,client[i].number,client[i].name,client[i].load);

这句话有严重问题,fscanf是用来读取数据的,后面的参数应该都是地址,比如&(client[i].number)

而且第一个参数i+1没什么意义,i+1不能接收文件里的数据

可以这样,
fscanf(fp,"(%d) %10d %10s %10f\n",&i,&(client[i].number),&(client[i].name),&(client[i].load));