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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Требуется описание arg_v, Поиск по форуму и в Google ничего не дал 
V
    Опции темы
Twilight
Дата 21.12.2007, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Киньте, пожалуйста, код с кратким примером работы arg_v. Или подскажите где можно почитать про это.
PM   Вверх
papam
Дата 21.12.2007, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 2.2.2006
Где: Украина::Запорожь е

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



Посмотри тут:

http://www.bebox.nu/bebooks/BeBookR5/The%2...geConcepts.html

Это сообщение отредактировал(а) papam - 21.12.2007, 21:38
--------------------
No Fucking Future
PM MAIL ICQ   Вверх
Twilight
Дата 21.12.2007, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо, но я ничего не понял. Можно пример в виде кода?  smile 

Если честно, то мне нужно написать программу, которая будет принимать "aaa", а выводить "bbb".
PM   Вверх
papam
Дата 21.12.2007, 21:53 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 2.2.2006
Где: Украина::Запорожь е

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



Код

if(arg_v[1] == "aaa")
{
cout<<"bbb";
}


--------------------
No Fucking Future
PM MAIL ICQ   Вверх
Twilight
Дата 21.12.2007, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(papam @ 21.12.2007,  21:53)
Код

if(arg_v[1] == "aaa")
{
cout<<"bbb";
}


А если полностью?
PM   Вверх
papam
Дата 21.12.2007, 22:02 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 2.2.2006
Где: Украина::Запорожь е

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



Код


int main(int argsc, *arg_v)
{
   if(argv[1] == "aaa")
     {
         cout << "bbb";
     }
}

здесь идет с единицы, потому что нулевой элемент - это путь к файлу ехе

Это сообщение отредактировал(а) papam - 21.12.2007, 22:03
--------------------
No Fucking Future
PM MAIL ICQ   Вверх
Twilight
Дата 21.12.2007, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата
(3) : error C2059: syntax error : ','
(3) : error C2143: syntax error : missing ')' before '*'
(3) : error C2143: syntax error : missing '{' before '*'
(3) : error C2059: syntax error : ')'
(4) : error C2054: expected '(' to follow 'arg_v'

Компилирую как файл .c
PM   Вверх
papam
Дата 21.12.2007, 22:25 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 2.2.2006
Где: Украина::Запорожь е

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



Нормально все компилится:
Код

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
   
   if(argv[1] == "aaa")
     {
         cout << "bbb";
     }

}



--------------------
No Fucking Future
PM MAIL ICQ   Вверх
Twilight
Дата 21.12.2007, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Понял из такого примера.

Код

#include <stdio.h>

int main(int argc, char *argv[])
{
    int i;
    for (i = 0; i < argc; i++)
    {
        printf("%d: %s\n",i,argv[i]);
    }
}

PM   Вверх
Twilight
Дата 24.12.2007, 02:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Почему не работает вот такой код? Вроде всё верно.

Код

#include <stdio.h>

int main(int arg_n, char *arg_v[])
{
    if(arg_v[1] == "aaa")
    {
        arg_v[1] = "bbb";
        printf("%s",arg_v[1]);
    }
}

PM   Вверх
jonie
Дата 24.12.2007, 03:36 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118



переименуй файл в cpp или компилируй явно указывая что это с++ файл, а НЕ с


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Twilight
Дата 24.12.2007, 03:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(jonie @ 24.12.2007,  03:36)
переименуй файл в cpp или компилируй явно указывая что это с++ файл, а НЕ с

А почему так не работает? Мне нужно сдавать как C, а не как C++...
PM   Вверх
nickless
Дата 24.12.2007, 04:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


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

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



Цитата(Twilight @  24.12.2007,  00:01 Найти цитируемый пост)
if(arg_v[1] == "aaa")

Здесь сравниваются указатели, а не строки, чтобы сравнить строки нужно использовать функции вроде strcmp() из string.h.
Кроме того нужно проверять, а есть ли вообще 1-й параметр, иначе программа может упасть с зегфолтом.

В общем делать примерно так:
Код

#include <stdio.h>
#include <string.h>

int main(int argc, const char * argv[])
{
    if (argc > 1 && strcmp(argv[1], "aaa") == 0)
    {
        printf("bbb\n");
    }
    return 0;
}


Да, затирать argv[1] для того чтобы вывести bbb не нужно.



--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
Twilight
Дата 24.12.2007, 04:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Условие игнорирует.

Код

#include <stdio.h>
#include <string.h>

int main(int arg_n, const char *arg_v[])
{
    if(arg_n > 1 && strcmp(arg_v[1],"aaa") == 0);
    {
    //    arg_v[1] = "bbb";
        printf("bbb\n");
        printf("Press any key for exit...\n");
        getchar();        
    }
    return 0;
}
}


Это сообщение отредактировал(а) Twilight - 24.12.2007, 04:19
PM   Вверх
EnergoHokum
Дата 24.12.2007, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 600
Регистрация: 10.11.2006
Где: Россия, Ставропол ь

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



Семён Семёныч! Ну кто-же так делает! Что это за 
Код

if(arg_n > 1 && strcmp(arg_v[1],"aaa") == 0);

Точку с запятой зачем после условия поставил? Потому и игнорирует.
Код

strcmp(arg_v[1],"aaa") == 0

и
Код

arg_n > 1

почему в скобки круглые не занёс? Приоритеты операторов ещё никто не отменял.
Код

#include <stdio.h>
#include <string.h>
int main(int arg_n, const char *arg_v[])
{
    if( (arg_n > 1) && (strcmp(arg_v[1],"aaa") == 0) )
    {
    //    arg_v[1] = "bbb";
        printf("bbb\n");
        printf("Press any key for exit...\n");
        getchar();        
    }
    return 0;
}

Вот так работает, компилировал GCC-ом.

Это сообщение отредактировал(а) EnergoHokum - 24.12.2007, 08:47
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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