Считывание структуры. Как сделать для "Price" числовой тип? - C (СИ)
Формулировка задачи:
Всем привет! Помогите разобраться со считыванием структуры из файла.
Когда у "Price" стоит тип FLOAT, программа не запускается и выдает ошибку в файле "input.c":
Если INT:
Сам файл:
Если у "Price" тип CHAR, как и у остальных категорий структуры, все работает нормально. Как сделать для "Price" числовой тип?
Спасибо.
Листинг программы
- struct Price
- {
- char item[20];
- char shop[20];
- float price;
- } goods[n], tmp;
- i = 0;
- FILE *file;
- file = fopen("c:\\Price.txt","r");
- while(!(feof(file)))
- {
- fscanf(file, "%s %s %f", goods[i].item, goods[i].shop, goods[i].price);
- i++;
- }
Листинг программы
- _FASSIGN( longone-1, (char*)pointer , pFloatStr, (char)decimal, _loc_update.GetLocaleT());
Листинг программы
- if (longone)
- *(long UNALIGNED *)pointer = (unsigned long)number;
Листинг программы
- Abrikos AMSTORE 30
- Banan METRO 20
- Kolbasa BOOM 100
- Ogurec ASSORTI 5
- asd das 34
- asd dsa 234
- fds sdf 234
Решение задачи: «Считывание структуры. Как сделать для "Price" числовой тип?»
textual
Листинг программы
- int d1;
- int *d2;
- // где-то здесь выделили память для d2
- fscanf(file, "%d %d", &d1, d2);
- // d1 - передаётся с помощью опереации получения адреса
- // d2 - является адресом и передатся без каких либо операций
Объяснение кода листинга программы
- В начале кода объявлены две переменные:
d1
иd2
. Переменнаяd1
имеет тип int, а переменнаяd2
- указатель на int. - Предполагается, что где-то до этого кода была выполнена операция выделения памяти для переменной
d2
. - С помощью функции
fscanf
происходит попытка чтения двух целочисленных значений из файлаfile
. - В качестве формата передачи данных указывается
%d %d
, что означает, что ожидаются два целочисленных значения. - Адрес переменной
d1
передается с помощью операции получения адреса&
, а переменнаяd2
передается без каких-либо операций, так как она уже является адресом. - Если все идет по плану, то в
d1
будет храниться первое прочитанное значение, а вd2
- адрес памяти, где будет храниться второе значение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д