目前停留在试图将用户提供的号码放入.txt文件的项目中。它应该处于循环中,直到用户输入0.前两个数字是整数,最后一个是浮点数。我当前的代码无限循环printf
,不允许scanf
。我必须使用fwrite
,因为他希望它处于二进制模式。问题出现在循环中我一直在
请输入商品数据(部件号,数量,价格):
这是我的项目代码。
#include<stdio.h>
#include<stdlib.h>
int main()
{
printf("This program stores a business inventory. \n");
FILE *fp;
fp = fopen("inventory.txt", "w+b");
if(fp == NULL)
{
printf("Can't open a file. \n");
return 0;
}
int a[2];
float b;
while(1)
{
printf("Please enter item data (part number, quantity, price): \n");
scanf("%d", &a[0]);
scanf("%d", &a[1]);
scanf("%f", &b);
fwrite(a, sizeof(a[0]),sizeof(a)/sizeof(a[0]), fp);
fwrite(&b, sizeof(b),1,fp);
}
fclose(fp);
return 0;
}
项目要我“写一个程序,反复要求用户输入有关企业库存的信息(项目部分 数量,数量,价格)然后将信息保存到名为inventory.txt的文件中。当用户为零件编号输入0时,程序将停止循环。“
用户输入为3,1,3.4
答案 0 :(得分:1)
怎么样
while(1)
{
printf("Please enter item data (part number, quantity, price): \n");
scanf("%d", &a[0]);
if(a[0] == 0)
break
scanf("%d", &a[1]);
scanf("%f", &b);
fwrite(a, sizeof(a[0]),sizeof(a)/sizeof(a[0]), fp);
fwrite(&b, sizeof(b),1,fp);
}