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

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

Войти
Регистрация
Восстановить пароль
 
EvGеn
17 / 3 / 1
Регистрация: 12.05.2011
Сообщений: 33
#1

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

18.10.2011, 21:00. Просмотров 291. Ответов 7
Метки нет (Все метки)

Доброго всем времени суток. Помогите пожалуйста решить несложную задачку.
Суть такова. Я пытаюсь написать прогу, которая бы создавала файл в том же месте, в котором она (прога) находится. С определением местоположения программы проблем нет. Функция Main получает от системы 2 аргумента. Второй из них - указатель на массив строк.
C++
1
void main(int nParam, char* param[])
В нулевой ячейке этого массива как раз записан путь к программе. В конце этого пути, естественно, стоит имя самой запускаемой программы. Значит, чтобы создать файл в той же директории, где расположена программа, нужно взять этот путь, стереть имя программы в конце, и вместо него дописать имя файла, который я хочу создать. Вот именно это у меня и не получается сделать. Если точнее, я не знаю как вытащить эту строку оттуда, где она находится, и поместить её в созданный мною массив char a [100] для дальнейшего редактирования.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2011, 21:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проблема со строками (C++):

Проблема со строками - C++
Добрый день. Нужна Ваша помощь в решении проблемы с задачкой по строкам. Ато сиджу несколько дней и догнать немогу С Клавиатуры вводим...

и опять директива {$H+}...проблема с длинными строками - Pascal
задача код программы моей в общем, кажется у меня опять проблема с длинными строками.. программа свалилась с 11 теста...

Работа со строками, заполнить компоненты строками из файла - Delphi
Привет! Нужна помощь в заполнении формы В общем, есть форма отправки письма. У нее есть 2 функции, сохранить письмо и открыть письмо (на...

Работа со строками(операции над строками) - C#
Пусть дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных латинских букв; между соседними словами...

Составить процедуру, которая преобразует исходный текстовый файл FVR со строками различной длины в файл FFIX со строками длиной 80 символов - Turbo Pascal
Составьте процедуру, которая преобразует исходный текстовый файл FVR со строками различной длины в файл FFIX со строками длиной 80 символов...

Сравнение со строками - Turbo Pascal
Добрый день! Помогите Нужно выполнить проверку, что вводятся только кг, шт или литр. Примерно так: type good = record ...

7
Revol'veR
23 / 23 / 2
Регистрация: 05.11.2010
Сообщений: 134
18.10.2011, 21:06 #2
Так выложите код.
0
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);
не прокатило, пишет ошибку.
0
two steps
6 / 6 / 3
Регистрация: 13.06.2011
Сообщений: 27
18.10.2011, 21:22 #4
Если я не ошибаюсь, это ведь аргументы командной строки? Тогда в первом элементе массива содержится имя программы, а не путь.
0
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], это у меня и не получается.
0
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;
}
2
Noa
57 / 34 / 4
Регистрация: 08.04.2008
Сообщений: 153
18.10.2011, 21:45 #7
EvGеn, ошибка какая? Пытаюсь найти свой пример по работе с аргументами main.

Добавлено через 8 минут
Нашел.
А two steps прав, надо ошибки читать))
0
EvGеn
17 / 3 / 1
Регистрация: 12.05.2011
Сообщений: 33
18.10.2011, 21:46  [ТС] #8
two steps точно, получилось! Значит я просто их местами перепутал, но истина была рядом
Спасибо большое за помощь
0
18.10.2011, 21:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2011, 21:46
Привет! Вот еще темы с ответами:

Работа со строками - Visual Basic
1)Дан произвольный текст. Выяснить, чего в нем больше: русских букв или цифр. 2)Дан текст на русском языке и некоторые два слова....

Работа со строками - Pascal
Дана последовательность слов. Определить количество слов, начинающихся на букву ‘б’. Результат получить в виде текстового сообщения вида:...

Работа со строками - Assembler
Здравствуйте,у меня вот такое задание. Даны две строки одинаковой длины, не превышающей 125 символов. Исключить повторяющиеся...

Работа со строками - Delphi
Необходимо разработать программу в среде Delphi, позволяющую производить обработку текстовой информации, а именно, дана строка, необхомо...


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

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

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