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

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

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

Показать сообщение отдельно
okwell5
2 / 2 / 1
Регистрация: 03.07.2010
Сообщений: 46
28.11.2011, 01:59     Ошибка при формирование пути к файлу циклами
Написал функцию формирования пути к файлу. Путь формируется по следующему принципу:
путь+имя_файла+расширение_файла
путь, имя файла, расширение - это динамические массивы. Путь содержится в глобальном массиве 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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru