Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
tdo22
12 / 12 / 13
Регистрация: 14.02.2013
Сообщений: 745
#1

Укажите где ошибка (ошибка во время выполнения программы)

23.08.2014, 13:04. Просмотров 533. Ответов 8
Метки нет (Все метки)

Здравствуйте, помогите пожалуйста найти ошибки в коде которые возникаю при выполнении программы
Картинка с ошибкой внизу поста.
Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
void Zipper::OutCompress(string binary)
{
    FILE *bin = fopen(binary.c_str(), "rb");
    char info_block_size[5];
    fread(info_block_size, 1, 5, bin);
    int _sz = atoi(info_block_size);
 
    char *info_block = new char[_sz];
    fread(info_block, 1, _sz, bin);
 
    vector<string> tokens;
    char *tok = strtok(info_block, "||");
    int toks = 0;
    while (tok)
    {
        if (strlen(tok) == 0) break;
        tokens.push_back(tok);
        tok = strtok(NULL, "||");
        toks++;
    }
    if (toks % 2 == 1) toks--;
    int files = toks / 2;
 
    char byte[1];
 
    for (int i = 0; i<files; i++)
    {
        const char* size = tokens[i * 2].c_str();
        const char* name = tokens[i * 2 + 1].c_str();
        char full_path[255];
        strcpy(full_path, this->path.c_str());
        strcat(full_path, name);
        int _sz = atoi(size);
        cout << "--  '" << name << "' извлечен в '" << this->path << "' ." << endl;
        FILE *curr = fopen(full_path, "wb");
        for (int r = 1; r <= _sz; r++)
        {
            if (fread(byte, 1, 1, bin) == 1) 
                fwrite(byte, 1, 1, curr);
        }
        fclose(curr);
 
        delete[] size;
        delete[] name;
    }
    fclose(bin);
 
}
с помощью дибагера я установил что ошибка вылетает на 39 строке, но почему ?
Полный код программы
0
Миниатюры
Укажите где ошибка (ошибка во время выполнения программы)  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2014, 13:04
Ответы с готовыми решениями:

Во время выполнения программы результат не выводится. Где ошибка?
Здравствуйте. Помогите, пожалуйста, найти ошибку в коде. Задание звучит так....

Ошибка во время выполнения программы
На сайте http://informatics.mccme.ru/mod/statements/view3.php?chapterid=212#1...

Ошибка во время выполнения программы
Здравствуйте, есть задача Дано два списка чисел, числа в первом списке...

Ошибка во время выполнения программы.
Здравствуйте, помогите, пожалуйста, разобраться. Пытаюсь сдать задачу, из 27...

Ошибка во время выполнения программы (размещения с повторениями)
Давно я не заходил на прекрасный форум...Надеюсь, найдутся люди, которые смогут...

8
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25740 / 17294 / 6877
Регистрация: 22.10.2011
Сообщений: 30,520
Записей в блоге: 6
23.08.2014, 13:09 #2
И где проверка на успешность открытия файла? curr точно не NULL?
0
tdo22
12 / 12 / 13
Регистрация: 14.02.2013
Сообщений: 745
23.08.2014, 13:11  [ТС] #3
curr NULL (0x00000000)
но почему не создает файл ?
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25740 / 17294 / 6877
Регистрация: 22.10.2011
Сообщений: 30,520
Записей в блоге: 6
23.08.2014, 13:15 #4
Проверяй.
errno, например посмотри...
0
tdo22
12 / 12 / 13
Регистрация: 14.02.2013
Сообщений: 745
23.08.2014, 13:19  [ТС] #5
сделал проверку на файл, и прохожу этот цикл так как файла нету.
Но потом на 43 строке выдает ошибку:
Укажите где ошибка (ошибка во время выполнения программы)
0
castaway
Эксперт С++
4927 / 3034 / 453
Регистрация: 10.11.2010
Сообщений: 11,089
Записей в блоге: 10
Завершенные тесты: 1
23.08.2014, 13:35 #6
Выведи на экран full_path, посмотри куда он указывает.
0
tdo22
12 / 12 / 13
Регистрация: 14.02.2013
Сообщений: 745
23.08.2014, 13:48  [ТС] #7
Указывает на файл.
В моем случае это:
C:\unpack\1.txt
Добавлено через 7 минут
Присвоение вроде как верно прописано.
Но дебагер про curr пишет:
curr NULL (0x00000000)

Почему так ?
0
castaway
Эксперт С++
4927 / 3034 / 453
Регистрация: 10.11.2010
Сообщений: 11,089
Записей в блоге: 10
Завершенные тесты: 1
23.08.2014, 15:30 #8
Папка unpack на диске C существует?
0
tdo22
12 / 12 / 13
Регистрация: 14.02.2013
Сообщений: 745
23.08.2014, 16:04  [ТС] #9
да, программа распаковывает свое содержимое в эту папку, но ошибка все равно есть
0
23.08.2014, 16:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2014, 16:04

Ошибка во время выполнения программы (структуры, массивы структур, указатели на структуру)
Работаю вот с таким кодом: #include&lt;iostream&gt; #include&lt;cstdio&gt;...

fputc не работает, укажите где в програмке ошибка
В С создается файл и выполняется над ним работа. Создается файл, вводится в...

Ошибка во время выполнения
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;fstream&gt; #include &lt;vector&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru