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

Проблема со строками - C++

Восстановить пароль Регистрация
 
EvGеn
17 / 3 / 1
Регистрация: 12.05.2011
Сообщений: 33
18.10.2011, 21:00     Проблема со строками #1
Доброго всем времени суток. Помогите пожалуйста решить несложную задачку.
Суть такова. Я пытаюсь написать прогу, которая бы создавала файл в том же месте, в котором она (прога) находится. С определением местоположения программы проблем нет. Функция Main получает от системы 2 аргумента. Второй из них - указатель на массив строк.
C++
1
void main(int nParam, char* param[])
В нулевой ячейке этого массива как раз записан путь к программе. В конце этого пути, естественно, стоит имя самой запускаемой программы. Значит, чтобы создать файл в той же директории, где расположена программа, нужно взять этот путь, стереть имя программы в конце, и вместо него дописать имя файла, который я хочу создать. Вот именно это у меня и не получается сделать. Если точнее, я не знаю как вытащить эту строку оттуда, где она находится, и поместить её в созданный мною массив char a [100] для дальнейшего редактирования.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Revol'veR
 Аватар для Revol'veR
23 / 23 / 2
Регистрация: 05.11.2010
Сообщений: 134
18.10.2011, 21:06     Проблема со строками #2
Так выложите код.
EvGеn
17 / 3 / 1
Регистрация: 12.05.2011
Сообщений: 33
18.10.2011, 21:17  [ТС]     Проблема со строками #3
Так кода никакого ещё нет, только функция main, и в ней создан массив char a[100]
C++
1
2
3
4
void main(int nParam, char* param[])
{
    char a[100];
}
Проблема заключается в том, что я не знаю как строку из param[0] поместить в массив a.

Только что пробовал сделать так:
C++
1
strcpy(param[0], a);
не прокатило, пишет ошибку.
two steps
6 / 6 / 3
Регистрация: 13.06.2011
Сообщений: 27
18.10.2011, 21:22     Проблема со строками #4
Если я не ошибаюсь, это ведь аргументы командной строки? Тогда в первом элементе массива содержится имя программы, а не путь.
EvGеn
17 / 3 / 1
Регистрация: 12.05.2011
Сообщений: 33
18.10.2011, 21:34  [ТС]     Проблема со строками #5
Ну, допустим, если программа myprog расположена в папке D:\123, то в первом элементе массива будет содержаться строка "D:\123\myprog.exe".
Но суть-то не в этом. Мне вот эту самую строку нужно поместить в свой массив char a[100], это у меня и не получается.
two steps
6 / 6 / 3
Регистрация: 13.06.2011
Сообщений: 27
18.10.2011, 21:37     Проблема со строками #6
Цитата Сообщение от two steps Посмотреть сообщение
Тогда в первом элементе массива содержится имя программы, а не путь.
Вру.

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdafx.h>
#include <iostream>
#include <conio.h>
 
int main(int nParam, char* param[]) //Выводит путь к программе
{
    char a[100];
    strcpy(a, param[0]);
    printf("%s", a);
    getch();
    return 0;
}
Noa
56 / 33 / 4
Регистрация: 08.04.2008
Сообщений: 158
18.10.2011, 21:45     Проблема со строками #7
EvGеn, ошибка какая? Пытаюсь найти свой пример по работе с аргументами main.

Добавлено через 8 минут
Нашел.
А two steps прав, надо ошибки читать))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2011, 21:46     Проблема со строками
Еще ссылки по теме:

Работа со строками C++
Проблема со строками C++
Работы со строками C++

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

Или воспользуйтесь поиском по форуму:
EvGеn
17 / 3 / 1
Регистрация: 12.05.2011
Сообщений: 33
18.10.2011, 21:46  [ТС]     Проблема со строками #8
two steps точно, получилось! Значит я просто их местами перепутал, но истина была рядом
Спасибо большое за помощь
Yandex
Объявления
18.10.2011, 21:46     Проблема со строками
Ответ Создать тему
Опции темы

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