Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.66/121: Рейтинг темы: голосов - 121, средняя оценка - 4.66
2 / 2 / 0
Регистрация: 10.08.2011
Сообщений: 56
1

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

06.10.2011, 08:07. Просмотров 22025. Ответов 15
Метки нет (Все метки)

Эксперты в с++,объясните пожалуйста новичку примерно понял как использовать эти аргументы,но не как не могу понять куда писать то что он должен вывести в консоли.

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

{ 
   cout << "Количество аргументов командной строки равно " << *argc[1] << endl; 
}
вот разжуйте хотяб на этом примере,где написано что он выводит путь до файла,а если мне скажем надо скорпировать файл что делать?куда писать вот это не понимаю
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.10.2011, 08:07
Ответы с готовыми решениями:

Что есть argc и **argv в функции int main(int argc, char **argv)?
Здраствуйте, уважаемые кодеры! Что означает argc и **argv в функции int main(int argc, char...

Подскажите пожалуйста с int main(int argc, char*argv[])
Если я правильно понимаю, то int argc это передача аргумента программе, т. е если argc&gt;1 то...

что такое int argc, char *argv[] в качестве параметров главной (main) функции?
И зачем

В каком случае надо начинать с int main() или с int _tmain( int argc, _TCHAR* argv[] ) и т.д.?
Не понимаю, с чего начинать. Заранее спс.

15
Эксперт С++
5811 / 3462 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
06.10.2011, 08:09 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... _arguments
3
Эксперт С++
5811 / 3462 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
06.10.2011, 08:11 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;
}
0
2 / 2 / 0
Регистрация: 10.08.2011
Сообщений: 56
06.10.2011, 08:15  [ТС] 4
Ну argc понял выводит количество аргументов,но все так же не понимаю вот вы привели пример, дак куда я должен написать сами команды для консоли.
или цифра 1 ему говорит то что я хочу сделать? блин чет нифига не понятно
0
Эксперт С++
5811 / 3462 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
06.10.2011, 08:24 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 - это массив, хранящий переданные аргументы
0
2 / 2 / 0
Регистрация: 10.08.2011
Сообщений: 56
06.10.2011, 08:26  [ТС] 6
Консоль то я знаю чего такое,вроде понял,я то подумал что в самой си++ программе можно написать код для консоли и она по ходу выполнения сама сделает а сейчас понял что просто нужно указать сколько будет использоваться аргументов,так?
0
Эксперт С++
5811 / 3462 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
06.10.2011, 08:31 7
trojan.gluk, нет, количество использованных (переданых) аргументов определяется непосредственно при вызове программы. Если я правильно понял, что ты хотел сказать (в чем я сомневаюсь)
0
2 / 2 / 0
Регистрация: 10.08.2011
Сообщений: 56
06.10.2011, 08:34  [ТС] 8
Цитата Сообщение от Nameless One Посмотреть сообщение
trojan.gluk, нет, количество использованных (переданых) аргументов определяется непосредственно при вызове программы. Если я правильно понял, что ты хотел сказать (в чем я сомневаюсь)
Уважаемый что то я совсем запутался,попробую объяснить что я думаю.Написал к примеру код программы запускаю получается консольная программа, но блин как я должен программе объяснить что я хочу сделать?я все еще про аргументы вот этого не могу понять
0
Эксперт С++
5811 / 3462 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
06.10.2011, 08:38 9
Цитата Сообщение от trojan.gluk Посмотреть сообщение
Уважаемый что то совсем запутался
неудивительно, что я запутался. Просто кто-то не умеет внятно выражать свои мысли.


Цитата Сообщение от trojan.gluk Посмотреть сообщение
но блин как я должен программе объяснить что я хочу сделать?
ты имеешь в виду, как сделать разбор аргументов командной строки? Выражайся уже общепринятыми терминами. Или приведи пример какой-нибудь
0
2 / 2 / 0
Регистрация: 10.08.2011
Сообщений: 56
06.10.2011, 08:42  [ТС] 10
Я пытаюсь узнать просто где в программе с++ нужно вводить команду которая будет вводится в консоль,и что там за разбор аргументов командной строки.
Если Argv массив дак блин как его заполнить командами консоли?чтоб потом выбирать вот вроде сказал то что хотел
0
246 / 204 / 26
Регистрация: 03.02.2009
Сообщений: 786
06.10.2011, 08:48 11
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от trojan.gluk Посмотреть сообщение
Я пытаюсь узнать просто где в программе с++ нужно вводить команду которая будет вводится в консоль,и что там за разбор аргументов командной строки

Не по теме:

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

3
Эксперт С++
5811 / 3462 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
06.10.2011, 08:48 12
Что значит "команда, которая будет вводиться в консоль"?

Не по теме:

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

1
2 / 2 / 0
Регистрация: 10.08.2011
Сообщений: 56
06.10.2011, 09:01  [ТС] 13
ладно спасибо за помощь, в гугле что нибудь поищу просто не могу объяснить тему можете закрыть и удалить
0
Эксперт С++
5037 / 3097 / 271
Регистрация: 11.11.2009
Сообщений: 7,047
06.10.2011, 14:09 14
trojan.gluk, покажите на примере, что вы хотите сделать. Что и в какой последовательности хотите вводить и что должно отобразиться на экране?
0
Кошковед
518 / 506 / 63
Регистрация: 12.04.2010
Сообщений: 1,392
06.10.2011, 14:25 15
смотря какую консоль ты имеешь в виду.

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

если у тебя консольное приложение, и ты в нем пытаешь ввести параметры - ни чего не получится с аргц и аргв
5
2 / 2 / 0
Регистрация: 10.08.2011
Сообщений: 56
07.10.2011, 14:31  [ТС] 16
Цитата Сообщение от co6ak Посмотреть сообщение
смотря какую консоль ты имеешь в виду.

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

если у тебя консольное приложение, и ты в нем пытаешь ввести параметры - ни чего не получится с аргц и аргв
Воо он меня понял,спасибо большое!!!!!!!!!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.10.2011, 14:31

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

int main() и int _tmain(int argc, _TCHAR* argv[])
При создании нового консольного приложения Microsoft Visual С++ 2010 Express создает начальный...

Что означает эта строка? int _tmain(int argc, _TCHAR* argv[])
Всем привет, до этого пользовался DEV, решил пересесть на Visual Studio 2010 Express C++. С++ еще...

Int _tmain(int argc, _TCHAR* argv[]) и др
Добрый день! При компилировании кода, где присутствует данная строчка int _tmain(int argc,...

Чтение из файла, название передано как параметры функции main argc & argv
Вообще дано задание - считать из файла чётные строки, название файла должно быть передано как...


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

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

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