将用户输入扫描到c中的.txt文件中

时间:2018-05-07 17:30:32

标签: c file loops

目前停留在试图将用户提供的号码放入.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

1 个答案:

答案 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);
}