Форум программистов, компьютерный форум CyberForum.ru

Слияние нескольких исполняемых файлов - C++

Восстановить пароль Регистрация
 
Bohes
4 / 3 / 0
Регистрация: 10.07.2011
Сообщений: 310
Записей в блоге: 1
05.11.2012, 08:55     Слияние нескольких исполняемых файлов #1
Программа выполняет слияние бинарных файлов, указанных в командной строке в выходной, отличный от входных.

Формат командной строки join.exe <inputfile>...<inputfile N> <output>

Получилась следующая программа:
C++ (Qt)
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
#include <stdio.h>
 
 
int main(int argc, char* argv[])
{
    
    if (argc > 3)
    {
        char buff;
        char * pointerbuff;
        int OutputIndex = argc-1;
        FILE * pInput = fopen (argv[OutputIndex],"w+");
        if (pInput != NULL)
        {
            for (int i = 1; i<OutputIndex;++i)
            {
                FILE * pInputf = fopen(argv[i],"r");
                if (pInputf != NULL)
                {
                    while (fread(pointerbuff,sizeof(char),1,pInputf)!=EOF)
                    {
                        fwrite(pointerbuff, sizeof(char),1,pInput);
                    }
                    fclose(pInputf);
                    pInputf = NULL;
                }
            }
            fclose(pInput);
            pInput = NULL;
        }
    }
    
    return 0; 
    
}
Вместо соединения файлов программа создает файл и записывает туда мусор, превышающий объем входных данных. В чем причина? Как исправить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2012, 08:55     Слияние нескольких исполняемых файлов
Посмотрите здесь:

Чересстрочное слияние файлов C++
Перестановки, поиск, сортировка, слияние файлов C++
C++ Файл: Слияние файлов
Компиляция нескольких файлов C++
C++ Запуск и последующее удаление всех исполняемых файлов из каталога
C++ Каталоги исполняемых файлов
Компиляция нескольких файлов C++
C++ Слияние двух файлов по алгоритму: цифра вставляется после двух символов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.11.2012, 09:03     Слияние нескольких исполняемых файлов #2
C++
1
char *pointerbuff;
Указатель объявили, а память выделить?
Bohes
4 / 3 / 0
Регистрация: 10.07.2011
Сообщений: 310
Записей в блоге: 1
05.11.2012, 09:48  [ТС]     Слияние нескольких исполняемых файлов #3
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
char *pointerbuff;
Указатель объявили, а память выделить?
прописал
C++ (Qt)
1
pointerbuff = &buff;
, но программа ведет себя также

Добавлено через 15 минут
Программа зацикливается на первой итерации цикла for, значит что-то не так с условием цикла while
C++ (Qt)
1
  while (fread(pointerbuff,sizeof(char),1,pInputf)!=EOF)
Но что?

Добавлено через 18 минут
Поменял параметры открытия с "w+" и "r" на "wb+" и "rb", а также цикл:
C++ (Qt)
1
2
3
4
5
while (!feof(pInputf))
                    {
                        fread(pointerbuff,sizeof(char),1,pInputf);
                        fwrite(pointerbuff, sizeof(char),1,pInput);
                    }
Заработало
Yandex
Объявления
05.11.2012, 09:48     Слияние нескольких исполняемых файлов
Ответ Создать тему
Опции темы

Текущее время: 16:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru