Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выранивание по правой границе составляющих их чисел http://www.cyberforum.ru/cpp-beginners/thread393293.html
Собственно мне надо было написать программу построения треугольника Паскаля в прямоугольном формате с заданным количеством строк. (сама суть заполнения не так уж и важна) и что самое главное...
C++ помогите с решением мультипоточной программы нужно написать мультипоточную программу которая выдает значение функции sin x воспользовавшись формулой Тейлора. например сделать так чтобы один процесс считал сумму только тех членов ряда которые... http://www.cyberforum.ru/cpp-beginners/thread393290.html
Как найти в текстовом файле нужный параметр C++
Добрый день. Мне надо реализовать одну программку, но с с++ я знаком слабо. У меня есть несколько файлов с расширением cdr. В них информация хранится в текстовом виде, как в txt файлах. Текст который...
C++ Множества STL
Подскажите плиз, как удалить из двух множеств STL одинаковые элементы?
C++ Циклический алгоритм. http://www.cyberforum.ru/cpp-beginners/thread393280.html
Здравствуйте товарищи программисты. Нужна ваша помощь. Нужно решить задачку по инфе а у самого не получается помогите программу написать на С++ Задача: Спасибо!
C++ Как инициализировать массив строк? Здравствуйте, подскажите как инициализировать массив строк, кол-во строк неизвестно, они будут загружаться из текстового файла. И как потом обращаться к определенному символу из определенной строки? подробнее

Показать сообщение отдельно
okwell5
2 / 2 / 1
Регистрация: 03.07.2010
Сообщений: 46

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

28.11.2011, 01:59. Просмотров 430. Ответов 0
Метки (Все метки)

Написал функцию формирования пути к файлу. Путь формируется по следующему принципу:
путь+имя_файла+расширение_файла
путь, имя файла, расширение - это динамические массивы. Путь содержится в глобальном массиве 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.