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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
okwell5
2 / 2 / 1
Регистрация: 03.07.2010
Сообщений: 46
#1

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

28.11.2011, 01:59. Просмотров 424. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2011, 01:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка при формирование пути к файлу циклами (C++):

указание пути к файлу - C++
Столкнулся с проблемой указания пути к файлу. Написал функцию. Вызываю её так: readFile(&quot;test.txt&quot;,stran,&amp;n); в моем случае файл...

Пробелы в пути к файлу - C++
Доброго времени суток. Простой вопрос, понимаю..раньше заключал пути в кавычки, но сейчас, почему-то, не срабатывает. Код: std::string...

Переменная в пути к файлу - C++
Есть код, точнее отрывок: char name; unsigned long size; GetUserName(name,&amp;size); ...

ввод пути к файлу с консоли - C++
подскажите пожалуйста, вот как отрыть файл для работы с ним я знаю, но покрайней мере я делаю так FILE *f; f=fopen(&quot;input.txt&quot;,&quot;r&quot;); ...

Задание пути к текстовому файлу - C++
Здравствуйте. Передо мной стоит такая задача - нужно создать программу, которая запрашивала бы путь к текстовому файлу. То есть, при...

Из полного пути к файлу выделить только имя файла - C++
Написать программу, которая по введённому полному пути к файлу выделяла бы только имя файла (то, что следует после последнего слеша или...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2011, 01:59
Привет! Вот еще темы с ответами:

Процедура разбора полного пути к файлу, представленного строкой - C++
Разработать процедуру (и вспомогательную программу) разбора заданной текстовой строки (задается переменной окружения или параметром...

Расщепление полного пути к файлу на диск, директорий...(неясность в задании) - C++
Доброго времени суток! Не ожидал от препода излишней адекватности,но сейчас я в ступоре... вот текст задания: &quot; Написать функцию...

ошибка с циклами - C++
помогите найти ошибку #include&lt;stdio.h&gt; int main() { float i,k,c,g; с=5 g=1; for (i=0;i&lt;10;i++){ for...

Как можно реализовать обращение к файлу, если часть пути каждый день меняется? - C++
Добрый день! Подскажите пожалуйста как можно реализовать обращение к файлу. Адрес которого C:\\Папка\Папка\12012016\Папка\файл., если папка...


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

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

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