Сканирование ввода пользователя в текстовый файл в c - PullRequest
0 голосов
/ 07 мая 2018

В настоящее время застрял в проекте, пытаясь поместить число, данное пользователем в файл .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 голосов
/ 07 мая 2018

как насчет

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...