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

Аргументы main(int argc, char *argv[]) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 101, средняя оценка - 4.61
trojan.gluk
 Аватар для trojan.gluk
2 / 2 / 0
Регистрация: 10.08.2011
Сообщений: 56
06.10.2011, 08:07     Аргументы main(int argc, char *argv[]) #1
Эксперты в с++,объясните пожалуйста новичку примерно понял как использовать эти аргументы,но не как не могу понять куда писать то что он должен вывести в консоли.

Добавлено через 2 минуты
Код
#include <iostream.h>
void main(int argc, char *argv[])

{ 
   cout << "Количество аргументов командной строки равно " << *argc[1] << endl; 
}
вот разжуйте хотяб на этом примере,где написано что он выводит путь до файла,а если мне скажем надо скорпировать файл что делать?куда писать вот это не понимаю
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
06.10.2011, 08:09     Аргументы main(int argc, char *argv[]) #2
Пример. Пусть у тебя есть программа program. При вызове ее из командной строки так:
Код
program
argc = 1, argv = {"program"}
Код
program first_arg second_arg
argc = 3, argv = {"program", "first_arg", "second_arg"}

Подробнее: http://en.wikipedia.org/wiki/C_synta...line_arguments
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
06.10.2011, 08:11     Аргументы main(int argc, char *argv[]) #3
Цитата Сообщение от trojan.gluk Посмотреть сообщение
вот разжуйте хотяб на этом примере,где написано что он выводит путь до файла
C++
1
2
3
4
5
6
7
#include <iostream>
 
int main(int argc, char* argv[])
{
   std::cout << *argv << std::endl;
   return 0;
}
trojan.gluk
 Аватар для trojan.gluk
2 / 2 / 0
Регистрация: 10.08.2011
Сообщений: 56
06.10.2011, 08:15  [ТС]     Аргументы main(int argc, char *argv[]) #4
Ну argc понял выводит количество аргументов,но все так же не понимаю вот вы привели пример, дак куда я должен написать сами команды для консоли.
или цифра 1 ему говорит то что я хочу сделать? блин чет нифига не понятно
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
06.10.2011, 08:24     Аргументы main(int argc, char *argv[]) #5
Цитата Сообщение от trojan.gluk Посмотреть сообщение
дак куда я должен написать сами команды для консоли.
очевидно, в консоль. Ты знаешь, что такое консоль? Еще пример (уже реальный). Программа печатает свои аргументы:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char* argv[])
{
    if(argc)
    {
    puts(*argv);
    main(argc - 1, argv + 1);
    }
    else
    exit(0);
}
Вызов этой программы из консоли с различными аргументами:
Код
[nameless@desktop c]$ ./sample 
./sample
[nameless@desktop c]$ ./sample foo bar baaz
./sample
foo
bar
baaz
[nameless@desktop c]$ ./sample first_arg second_arg third_arg fourth_arg and so on
./sample
first_arg
second_arg
third_arg
fourth_arg
and
so
on
[nameless@desktop c]$
Цитата Сообщение от trojan.gluk Посмотреть сообщение
или цифра 1 ему говорит то что я хочу сделать? блин чет нифига не понятно
argc - это число переданных аргументов. argv - это массив, хранящий переданные аргументы
trojan.gluk
 Аватар для trojan.gluk
2 / 2 / 0
Регистрация: 10.08.2011
Сообщений: 56
06.10.2011, 08:26  [ТС]     Аргументы main(int argc, char *argv[]) #6
Консоль то я знаю чего такое,вроде понял,я то подумал что в самой си++ программе можно написать код для консоли и она по ходу выполнения сама сделает а сейчас понял что просто нужно указать сколько будет использоваться аргументов,так?
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
06.10.2011, 08:31     Аргументы main(int argc, char *argv[]) #7
trojan.gluk, нет, количество использованных (переданых) аргументов определяется непосредственно при вызове программы. Если я правильно понял, что ты хотел сказать (в чем я сомневаюсь)
trojan.gluk
 Аватар для trojan.gluk
2 / 2 / 0
Регистрация: 10.08.2011
Сообщений: 56
06.10.2011, 08:34  [ТС]     Аргументы main(int argc, char *argv[]) #8
Цитата Сообщение от Nameless One Посмотреть сообщение
trojan.gluk, нет, количество использованных (переданых) аргументов определяется непосредственно при вызове программы. Если я правильно понял, что ты хотел сказать (в чем я сомневаюсь)
Уважаемый что то я совсем запутался,попробую объяснить что я думаю.Написал к примеру код программы запускаю получается консольная программа, но блин как я должен программе объяснить что я хочу сделать?я все еще про аргументы вот этого не могу понять
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
06.10.2011, 08:38     Аргументы main(int argc, char *argv[]) #9
Цитата Сообщение от trojan.gluk Посмотреть сообщение
Уважаемый что то совсем запутался
неудивительно, что я запутался. Просто кто-то не умеет внятно выражать свои мысли.


Цитата Сообщение от trojan.gluk Посмотреть сообщение
но блин как я должен программе объяснить что я хочу сделать?
ты имеешь в виду, как сделать разбор аргументов командной строки? Выражайся уже общепринятыми терминами. Или приведи пример какой-нибудь
trojan.gluk
 Аватар для trojan.gluk
2 / 2 / 0
Регистрация: 10.08.2011
Сообщений: 56
06.10.2011, 08:42  [ТС]     Аргументы main(int argc, char *argv[]) #10
Я пытаюсь узнать просто где в программе с++ нужно вводить команду которая будет вводится в консоль,и что там за разбор аргументов командной строки.
Если Argv массив дак блин как его заполнить командами консоли?чтоб потом выбирать вот вроде сказал то что хотел
o-user
244 / 201 / 7
Регистрация: 03.02.2009
Сообщений: 788
06.10.2011, 08:48     Аргументы main(int argc, char *argv[]) #11
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от trojan.gluk Посмотреть сообщение
Я пытаюсь узнать просто где в программе с++ нужно вводить команду которая будет вводится в консоль,и что там за разбор аргументов командной строки

Не по теме:

Предлагаю вам в своем аватаре убрать красную перечеркнутую окружность (т.е. оставить только мозг и человечка)!

Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
06.10.2011, 08:48     Аргументы main(int argc, char *argv[]) #12
Что значит "команда, которая будет вводиться в консоль"?

Не по теме:

мы что, в сломанный телефон тут играем?

trojan.gluk
 Аватар для trojan.gluk
2 / 2 / 0
Регистрация: 10.08.2011
Сообщений: 56
06.10.2011, 09:01  [ТС]     Аргументы main(int argc, char *argv[]) #13
ладно спасибо за помощь, в гугле что нибудь поищу просто не могу объяснить тему можете закрыть и удалить
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
06.10.2011, 14:09     Аргументы main(int argc, char *argv[]) #14
trojan.gluk, покажите на примере, что вы хотите сделать. Что и в какой последовательности хотите вводить и что должно отобразиться на экране?
co6ak
Кошковед
 Аватар для co6ak
402 / 495 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
06.10.2011, 14:25     Аргументы main(int argc, char *argv[]) #15
смотря какую консоль ты имеешь в виду.

если вызываешь командой программу через консоль без параметров, тогда
argc = 1, argv[0] - имя приложения
если вызываешь допустим /catalog/prog -123,
тогда argc = 2, argv[0] - имя, argv[1] = "123";

если у тебя консольное приложение, и ты в нем пытаешь ввести параметры - ни чего не получится с аргц и аргв
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2011, 14:31     Аргументы main(int argc, char *argv[])
Еще ссылки по теме:

C++ Чтение из файла, название передано как параметры функции main argc & argv
C++ Int _tmain(int argc, _TCHAR* argv[]) и др
C++ В каком случае надо начинать с int main() или с int _tmain( int argc, _TCHAR* argv[] ) и т.д.?

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

Или воспользуйтесь поиском по форуму:
trojan.gluk
 Аватар для trojan.gluk
2 / 2 / 0
Регистрация: 10.08.2011
Сообщений: 56
07.10.2011, 14:31  [ТС]     Аргументы main(int argc, char *argv[]) #16
Цитата Сообщение от co6ak Посмотреть сообщение
смотря какую консоль ты имеешь в виду.

если вызываешь командой программу через консоль без параметров, тогда
argc = 1, argv[0] - имя приложения
если вызываешь допустим /catalog/prog -123,
тогда argc = 2, argv[0] - имя, argv[1] = "123";

если у тебя консольное приложение, и ты в нем пытаешь ввести параметры - ни чего не получится с аргц и аргв
Воо он меня понял,спасибо большое!!!!!!!!!!
Yandex
Объявления
07.10.2011, 14:31     Аргументы main(int argc, char *argv[])
Ответ Создать тему
Опции темы

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