Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2016, 15:43   #1
Алинка_Ы
Пользователь
 
Регистрация: 09.11.2015
Сообщений: 28
По умолчанию CodeBlocks не открывает файлы!

Доброго времени суток! Среда разработки Code::Blocks не хочет создавать файл(бинарный) и затем открывать его Подскажите, пожалуйста, с чем это может быть связано?
P.S.: на компьютере друга все корректно работает.

На всякий случай код:
Код:
#include <locale.h>
#include <stdio.h>
#include <malloc.h>
//Объявление констант для названий
#define DEVICE_NAME_LEN 30
#define CUSTOMER_NAME_LEN 40

FILE* outFile; //файл
void initFile(); //функция инициализации файла
void useOld();//функция работы со старыми данными файла
int main_num, num_devices;

struct Dimensions {
// Структура для габаритов
   float Length, Height, Width;
};
struct MeasureDevice {
// Структура для прибора
   char deviceName[DEVICE_NAME_LEN];
   struct Dimensions deviceDimensions;
};
struct Customer {
// Структура для заказчика
   char customerName[CUSTOMER_NAME_LEN];
   char adress[CUSTOMER_NAME_LEN];
};
struct Order {
// Структура для заказа
   struct Customer custName;
   int amount;
};
int main() {
   setlocale(LC_ALL, "");
   int kod;
   printf("\nДанная программа работает с бинарными файлами.");
   printf("\n1. Использовать старые данные.");
   printf("\n2. Записать новые.");
   printf("\n0. Выход из программы.");
   printf("\n> ");
   scanf("%d", &kod);
   switch (kod) {
       case 0: exit(1);
       case 1: useOld(); break;
       case 2: initFile(); break;
       default: printf("\nВы ввели неправильный код операции!"); break;
   }
   return 0;
}

void initFile() {
   int i, j;
   int sum;
   printf("\nУкажите количество приборов в базе: ");
   scanf("%i", &num_devices);
   struct MeasureDevice devices[num_devices];
   for(i = 0; i < num_devices; i++) {
       printf("\nВведите название прибора: ");
       scanf("%s", &devices[i].deviceName);
       printf("Ширина(см): ");
       scanf("%f", &devices[i].deviceDimensions.Width);
       printf("Длина(см): ");
       scanf("%f", &devices[i].deviceDimensions.Length);
       printf("Высота(см): ");
       scanf("%f", &devices[i].deviceDimensions.Height);
   }
   printf("\nУкажите количество заказчиков: ");
   scanf("%d", &main_num);
   struct Order order[main_num];
   for(i = 0; i < main_num; i++) {
       printf("\nВведите имя заказчика: ");
       scanf("%s", &order[i].custName.customerName);
       printf("Введите адрес заказчика(название улицы,номер дома): ");
       scanf("%s", &order[i].custName.adress);
       order[i].amount = 0;
       for(j = 0; j < num_devices; j++) {
           printf("Введите количество заказанных %s устройств: ", devices[j].deviceName);
           scanf("%d", &sum);
           order[i].amount += sum;
       }
   }
   if((outFile = fopen("data.bin", "wb")) == NULL) {
           printf("Возникла ошибка при открытии файла!\n");
           exit(1);
    }
   if((fwrite(&main_num, sizeof(int), 1, outFile)!=1 || fwrite(&num_devices, sizeof(int), 1, outFile)!=1))
     printf("\nЗапись main_num и num_devices не пошла.");
   else  printf("\nЗапись main_num и num_devices успешно пройдена.");
   if((fwrite(&devices, sizeof(struct MeasureDevice), num_devices, outFile)) != num_devices || (fwrite(&order, sizeof(struct Order), main_num, outFile)) != main_num)
       printf("\nПри записи возникла ошибка!");
   else {
       printf("\nЗапись прошла успешно!");
   }
   int val;
   printf("\nУкажите порог заказанных приборов: ");
   scanf("%d", &val);
   printf("\nСписок заказчиков, которые заказали более %d приборов разных типов: ", val);
   for(i = 0; i < main_num; i++) {
       if(val < order[i].amount) {
           printf("\n -%s", order[i].custName.customerName);
       }
   }
   fclose(outFile);
}

void useOld() {
   int i;
   if((outFile = fopen("data.bin", "rb")) == NULL) {
       printf("Возникла ошибка при открытии файла!\n");
       exit(1);
   }
   fread(&main_num, sizeof(int), 1, outFile);
   fread(&num_devices, sizeof(int), 1, outFile);

   printf("\nКоличество заказов: %d\nКоличество приборов: %d", main_num, num_devices);

   struct MeasureDevice devices[num_devices];
   if(fread(&devices, sizeof(struct MeasureDevice), num_devices, outFile)!=num_devices)
       printf("\nНе считывает devices.");
   struct Order order[main_num];
   if(fread(&order, sizeof(struct Order), main_num, outFile)!=main_num)
       printf("\nНе считывает order.");
   for(i = 0; i < main_num; i++) {
       printf("\n%s - %d", order[i].custName.customerName, order[i].amount);
   }
   int val;
   int flag=0;
   printf("\nУкажите порог заказанных приборов: ");
   scanf("%d", &val);
   printf("\nСписок заказчиков, которые заказали более %d приборов разных типов: ", val);
   for(i = 0; i < main_num; i++) {
       if(val < order[i].amount) {
           printf("\n -%s", order[i].custName.customerName);
           flag=1;
       }
   }
   if(flag==0)
       printf("\nДанных о таких людях нет.");
    fclose(outFile);
}

Последний раз редактировалось Alex11223; 02.05.2016 в 16:13.
Алинка_Ы вне форума Ответить с цитированием
Старый 02.05.2016, 16:12   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Как именно не хочет-то? Что пишет?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 02.05.2016, 16:33   #3
Алинка_Ы
Пользователь
 
Регистрация: 09.11.2015
Сообщений: 28
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Как именно не хочет-то? Что пишет?
Проверку на открытие файла прога не проходит(!=0) и соответственно пишет, что "Возникла ошибка".
Файл в папке не создается самостоятельно, также я пробовала создать его предварительно - результат тот же.
Возможно это связано с антивирусом?(или бред)
Алинка_Ы вне форума Ответить с цитированием
Старый 02.05.2016, 16:38   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А в errno/strerror что?
http://www.cplusplus.com/reference/cerrno/errno/
http://www.cplusplus.com/reference/cstring/strerror/
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 02.05.2016, 16:50   #5
Алинка_Ы
Пользователь
 
Регистрация: 09.11.2015
Сообщений: 28
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Изображения
Тип файла: png error.png (13.3 Кб, 189 просмотров)
Алинка_Ы вне форума Ответить с цитированием
Старый 02.05.2016, 18:33   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

ну дык, permissoin жэж denied жэж!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 02.05.2016, 19:51   #7
Алинка_Ы
Пользователь
 
Регистрация: 09.11.2015
Сообщений: 28
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Спасибо за помощь!

Цитата:
Сообщение от min@y™ Посмотреть сообщение
ну дык, permissoin жэж denied жэж!
Вижу, вижу)
Алинка_Ы вне форума Ответить с цитированием
Старый 02.05.2016, 20:20   #8
Алинка_Ы
Пользователь
 
Регистрация: 09.11.2015
Сообщений: 28
По умолчанию

Всем спасибо за помощь, проблема решена!

Последний раз редактировалось Алинка_Ы; 02.05.2016 в 20:32. Причина: Все работает!
Алинка_Ы вне форума Ответить с цитированием
Старый 02.05.2016, 20:26   #9
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

перемести всё это добро в папку D:\Temp\Shit
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 02.05.2016, 20:33   #10
Алинка_Ы
Пользователь
 
Регистрация: 09.11.2015
Сообщений: 28
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
перемести всё это добро в папку D:\Temp\Shit
Спасибо
Алинка_Ы вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не открывает файлы Word, excel injee Microsoft Office Word 1 28.06.2011 18:30
Комп не открывает файлы .exe Alinko-malinko Свободное общение 5 14.04.2011 21:42
mciSendString не открывает некоторые файлы Гром Общие вопросы C/C++ 10 28.12.2010 09:55
Не открывает файлы antart Microsoft Office Excel 4 06.09.2010 01:35
Заголовочные файлы CodeBlocks Linux anyx Qt и кроссплатформенное программирование С/С++ 5 28.05.2010 14:47