【发布时间】:2020-04-16 04:02:15
【问题描述】:
我要做的是编写 2 个函数: 一个写入文件的函数和一个读取同一文件的函数…… 我面临两个问题: 1-当我同时执行这两个功能时: 第一个函数几乎可以正常工作,但它没有返回 1 ;第二个函数正确读取了我的文件,但它在无限系列的 0 之后给了我。 2-当我只执行第二个函数(读取)时,它给了我无限系列的 0,它没有读取我在文件中的内容。
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
struct Product
{
int Code;
char Name[30];
float Price;
};
struct Product p[15];
int SaveProduct(int n) // n number of product
{
int i;
FILE *f;
if((f=fopen("save.txt","w"))==NULL)
{
return 0;
}
else{
fprintf(f,"Code\tName\tPrice\n");
for(i=0;i<n;i++)
{
printf("enter Code,Name,Price\n");
scanf("%d %s %f",&p[i].Code, p[i].Name,&p[i].Price);
fprintf(f,"%d \t %s\t %.2f\n",p[i].Code, p[i].Name,p[i].Price);
}
fclose(f);
return 1;
}
}
void displayProduct()
{
FILE *f;
if ( (f=fopen("save.txt","r"))==NULL )
{
printf("error");
}
else
{int i=0;
printf("Code\tName\tPrice\n");
while(fscanf(f,"%d %s %f",&p[i].Code,p[i].Name,&p[i].Price) != EOF)
{
printf("%d\t %s\t %.2f\n",p[i].Code,p[i].Name,p[i].Price);
i++;
}
fclose(f);
}
}
int main()
{
SaveProduct(3); //3 number of product
displayProduct();
}
【问题讨论】:
标签: c function file scanf fopen