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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 101, средняя оценка - 4.61
trojan.gluk
2 / 2 / 0
Регистрация: 10.08.2011
Сообщений: 56
#1

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

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

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

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

{ 
   cout << "Количество аргументов командной строки равно " << *argc[1] << endl; 
}
вот разжуйте хотяб на этом примере,где написано что он выводит путь до файла,а если мне скажем надо скорпировать файл что делать?куда писать вот это не понимаю
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2011, 08:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Аргументы main(int argc, char *argv[]) (C++):

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

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

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

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

int main() и int _tmain(int argc, _TCHAR* argv[]) - C++
При создании нового консольного приложения Microsoft Visual С++ 2010 Express создает начальный шаблон #include &quot;stdafx.h&quot; int...

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

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


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

Не по теме:

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

3
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
06.10.2011, 08:48 #12
Что значит "команда, которая будет вводиться в консоль"?

Не по теме:

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

1
trojan.gluk
2 / 2 / 0
Регистрация: 10.08.2011
Сообщений: 56
06.10.2011, 09:01  [ТС] #13
ладно спасибо за помощь, в гугле что нибудь поищу просто не могу объяснить тему можете закрыть и удалить
0
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
06.10.2011, 14:09 #14
trojan.gluk, покажите на примере, что вы хотите сделать. Что и в какой последовательности хотите вводить и что должно отобразиться на экране?
0
co6ak
Кошковед
407 / 500 / 29
Регистрация: 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";

если у тебя консольное приложение, и ты в нем пытаешь ввести параметры - ни чего не получится с аргц и аргв
4
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2011, 14:25
Привет! Вот еще темы с ответами:

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

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

Почему _TCHAR выдает ошибку int _tmain(int argc, _TCHAR* argv[]) - C++
// ConsoleApplication42.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include&lt;iostream&gt; ...

Argc и Argv - C++
Всем привет, у меня такой вопрос, как правильно вызвать данную функцию int test(int argc, char* argv){ } Я делала так, но компилятор...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.10.2011, 14:25
Ответ Создать тему
Опции темы

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