Определить, имеется ли в текстовом файле запись об указанном товаре - 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; }
Объяснение кода листинга программы
- Подключение необходимых библиотек
- Объявление файла, в котором будет осуществляться поиск записи о товаре
- Объявление структуры данных, представляющей один товар
- Объявление переменных для хранения информации о товаре и его количестве
- Открытие файла с помощью функции fopen() для чтения и записи
- Получение от пользователя номера товара и количества проданного товара
- Перемещение указателя файла к нужному товару с помощью функции fseek()
- Чтение информации о товаре с помощью функции fread()
- Проверка наличия товара в магазине
- Если товар есть, то уменьшение его количества на количество проданного товара
- Перемещение указателя файла обратно к записи о товаре
- Запись измененной информации о товаре в файл с помощью функции fwrite()
- Закрытие файла с помощью функции fclose()
- Завершение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д