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

Ошибка при формирование пути к файлу циклами - C++

Восстановить пароль Регистрация
 
okwell5
2 / 2 / 1
Регистрация: 03.07.2010
Сообщений: 46
28.11.2011, 01:59     Ошибка при формирование пути к файлу циклами #1
Написал функцию формирования пути к файлу. Путь формируется по следующему принципу:
путь+имя_файла+расширение_файла
путь, имя файла, расширение - это динамические массивы. Путь содержится в глобальном массиве var_path. Вот код функции:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void pathfile( char *name, char *ext)
{
    char *lname, *lext;
    lname=new char[256];
    lext=new char[256];
    strcpy(lname,name);
    strcpy(lext, ext);
    char *lpfile;
    lpfile= new char[256];
    for(int l=0; l<strlen(var_path); l++)
        lpfile[l]=var_path[l];
    //strcpy(lpfile, var_path);
    for(int i=strlen(var_path); i<(strlen(var_path)+strlen(name)); i++)
        lpfile[i]=lname[i];
    lpfile[strlen(var_path)+strlen(name)]='.';
    for(int j=strlen(var_path)+strlen(name)+1; j<(strlen(var_path)+strlen(name)+1+strlen(ext)); j++)
        lpfile[j]=lext[j];
    lpfile[strlen(var_path)+strlen(name)+1+strlen(ext)]='\0';
    strcpy(pfile, lpfile);
    delete[] lpfile;
    delete[] lname;
    delete[] lext;
}
Цикл for(int l=0; l<strlen(var_path); l++) отрабатывает нормально(путь копируется), но вот во втором и третьем циклах почему-то присваивание не происходит. Точнее происходит, но вставляются не те знаки, т.е. :
lpfile="C:\\test\\HHHHH.HHH" - вот такой результат. Из результата видно, что точка вставляется нормально, а вот имя и расширение - не знаю почему такие.
Дебаггер не помог.
Может кто встречался уже с этим или знает, в чем дело? Или помогите найти другое решение.

Добавлено через 4 часа 32 минуты
Все, уже узнал. Все это правильно можно заменить несколькими строчками:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void pathfile( char *name, char *ext)
{
    char *lpfile;
    lpfile=new char[256];
    strcpy(lpfile, var_path);
    strcat(lpfile, name);
    strcat(lpfile, ".");
    strcat(lpfile, ext);
    strcpy(pfile, lpfile);
 
    delete[] lpfile;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2011, 01:59     Ошибка при формирование пути к файлу циклами
Посмотрите здесь:

C++ Переменная в пути к файлу
C++ ошибка с циклами
C++ Из полного пути к файлу выделить только имя файла
указание пути к файлу C++
Расщепление полного пути к файлу на диск, директорий...(неясность в задании) C++
C++ ввод пути к файлу с консоли
Процедура разбора полного пути к файлу, представленного строкой C++
Задание пути к текстовому файлу C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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