Определить, имеется ли в текстовом файле запись об указанном товаре - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Как изменить(уменшить количество) в файле?Не могу сделать,остальное работает.Помогите,пожалуйста) Дан файл, содержащий информацию о наличии товаров на складе. Структура записи файла: шифр товара, наименование, количество, цена. Написать программу, которая - при покупке товара проверяет, имеется ли в наличии заданное количество соответствующего товара, и если имеется, изменяет в файле соответствующую запись (уменьшает количество), вычисляет и печатает стоимость товара;

Решение задачи: «Определить, имеется ли в текстовом файле запись об указанном товаре»

textual
Листинг программы
#include <stdio.h>
 
#define filename "basashop.dat"
int main(){
 
    struct info{
        int shifr;
        char name[80];
        int count;
        int cost;
    };
    int info,i=0,number=0;
    FILE * fin;
    fin=fopen(filename,"r+");
 
    printf("Введите порядковый номер товара: ");
    scanf("%d", &number);
    printf("Введите количество товара, которое продано: ");
    scanf("%d", &i);
    fseek(fin,sizeof(info)*number-1,0);
    fread(&info,sizeof(info),1,fin);
    if(info.count>i){
        printf("Profit");
        info.count-=i; // уменьшаем количество доступного товара в магазине
    }
    fseek(fin,sizeof(info)*number-1,0); //еще раз перемещаем указатель, т.к. при чтении *кирпича* в виде структуры указатель сместился на sizeof(info) к концу файла
    fwrite(&info,sizeof(info),1,fin); // записываем  структуру с поправками в количестве
    fclose(fin);
return 0;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек
  2. Объявление файла, в котором будет осуществляться поиск записи о товаре
  3. Объявление структуры данных, представляющей один товар
  4. Объявление переменных для хранения информации о товаре и его количестве
  5. Открытие файла с помощью функции fopen() для чтения и записи
  6. Получение от пользователя номера товара и количества проданного товара
  7. Перемещение указателя файла к нужному товару с помощью функции fseek()
  8. Чтение информации о товаре с помощью функции fread()
  9. Проверка наличия товара в магазине
  10. Если товар есть, то уменьшение его количества на количество проданного товара
  11. Перемещение указателя файла обратно к записи о товаре
  12. Запись измененной информации о товаре в файл с помощью функции fwrite()
  13. Закрытие файла с помощью функции fclose()
  14. Завершение программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5
Похожие ответы