帮我解决这个问题...它一直说出错: -
它说fwrite
有问题..
// #define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
struct prod
{
char ProductCode [5];
int Expired_year;
char Product_country [25];
}product;
struct prod product;
void main()
{
char x ;
FILE* data;
data = fopen("product.dat","wb");
while(x != 'N')
{
printf("Enter product code :");
scanf("%s", product.ProductCode);
printf("Enter expired year of the product :");
scanf("%d", &product.Expired_year);
fflush(stdin);
printf("Enter product country :");
scanf("%[^\n]", product.Product_country);
fflush(stdin);
fwrite(&prod, sizeof(product), 1, data);
printf("\nPlease enter anykey to continue or 'N' to stop: ");
scanf("%c", &x);
fflush(stdin);
printf("\n");
}
fclose(data);
}
答案 0 :(得分:3)
fwrite(&prod, sizeof(product), 1, data);
prod
不是指struct
个实例,而是指结构的名称,它应该是
fwrite(&product, sizeof(product), 1, data);
答案 1 :(得分:1)
fwrite()
的语法错误。
它应该是,
fwrite(&product, 1, sizeof(product), data);
答案 2 :(得分:0)
第一个参数需要一个指向某些数据的指针,但&amp; prod无效。 prod是一个类型,而不是实例变量。您可能希望将其更改为fwrite (&product, ...)
答案 3 :(得分:0)
首先,您要宣布struct prod product
两次。
其次,fwrite()
的正确语法是fwrite(&product,sizeof(struct prod),1,data);