Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Аргументы argv[]. Нужен help... 
V
    Опции темы
zhenium
Дата 30.10.2006, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 16.10.2006

Репутация: нет
Всего: 2



    Люди, подскажите, а то я в конец запутался: надо присвоить второй аргумент argv[] строковому массиву. Как сделать? У меня ничего не получаетсяsmile
PM MAIL   Вверх
Kuvaldis
Дата 30.10.2006, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


механик-вредитель
***


Профиль
Группа: Участник Клуба
Сообщений: 1189
Регистрация: 16.6.2006
Где: Минск

Репутация: 11
Всего: 61



zhenium, 
допустим, что строковый массив - char* str;
Тогда
Код

strcpy(str, argv[1]); 

Только учти, что параметр командной строки (argv[]) - это массив слов (т.е. они разделены пробелами) 

Это сообщение отредактировал(а) Kuvaldis - 30.10.2006, 01:13


--------------------
Помни - когда ты спишь, враг не дремлет
Спи чаще и дольше, изматывай врага бессоницей
PM MAIL ICQ   Вверх
zhenium
Дата 30.10.2006, 01:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 16.10.2006

Репутация: нет
Всего: 2



    В очередной раз благодарю!!!smile
    Да, с устройством данного массива я разобрался. А вот с присвоением запутался. Пробовал многое. Дошёл до такого, что скомпилировал программу, запустил, а при её запуске ОС сама по себе ( тут уж я слукавил - из-за меня ) отключилась. А при загрузке сообщила о серьёзной ошибке системы. После этого решил всё-таки спросить у знающих. Вот такая вот история...
PM MAIL   Вверх
apook
Дата 31.10.2006, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 9
Всего: 23



Цитата

Люди, подскажите, а то я в конец запутался: надо присвоить второй аргумент argv[] строковому массиву. Как сделать? У меня ничего не получается



А можешь ли ты присвоить один строковой массив другому ведь ето одно и
то-де

 


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
zhenium
Дата 2.11.2006, 02:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 16.10.2006

Репутация: нет
Всего: 2



     В продолжение темы: надо передать из main() в другую функцию второй аргумент, т.е argv[1], но у меня почему-то не сохраняются значения. Вот как делал я:

     В прототипе необходимой функции: ... ( ..., char argv[], ... );
     При вызове функции в main(): ... ( ..., argv[1], ... );

     Укажите, что неправильное, пожалуйста.
PM MAIL   Вверх
apook
Дата 2.11.2006, 05:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 9
Всего: 23



Пишешь так:

Код

#include "conio.h"
#include "stdio.h"
#include "string.h"

int my_function(char *argument)
{
int i, c;
char *argument_to_modernization=new char[strlen(argument)];


for(i=0,c=0; argument[i] !='\0' && argument[i] !='\n'; i++)
{//вот вот оно! удали все запятые ...
    if(argument[i] !=',')
    {
        argument_to_modernization[c] =argument[i];
        c++;
        }
    }
argument_to_modernization[c] ='\0';
strcpy(argument, argument_to_modernization);
return c;
}

void main(int argc, char *argv[])
{
int x=0;
if(argc >1)
{
char *array =new char[strlen(argv[1])];

strcpy(array, argv[1]);
x=my_function(array);

printf("%s\n\n\n\n", array);
}
else     printf("No Argument");


}



Верняк!


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
MAKCim
Дата 2.11.2006, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



apook
Кто delete будет вызывать?


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
apook
Дата 2.11.2006, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 9
Всего: 23



Это относится к main или к другой функции, если к другой то что-то такое о 
времени жизни слышал


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
Любитель
Дата 2.11.2006, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



Цитата(apook @  2.11.2006,  10:15 Найти цитируемый пост)
если к другой то что-то такое о времени жизни слышал

Ты это к чему smile  Делитить нужно в любом случае.



--------------------
PM MAIL ICQ Skype   Вверх
apook
Дата 2.11.2006, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 9
Всего: 23



Код

int i=0;
if(i)
{
    char *dummy_array =new char [1000];
    }


//printf("%s", dummy_array); //Здесь переменной dummy_array не существует


или че?


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
MAKCim
Дата 2.11.2006, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата

или че? 

Именно переменной не существует, точнее она еще скорее всего существует в стеке, но доступ к ней не возможен (контролируется компилятором)
Область памяти, на которую указывала переменная уже потеряна, т. к в аллокаторе она помечена как используемая, внешняя программа пользоваться ей тоже не может по вышеизложенным причинам

Это сообщение отредактировал(а) MAKCim - 2.11.2006, 16:33


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0499 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.