Считывание структуры. Как сделать для "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
- адрес памяти, где будет храниться второе значение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д