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

Аргументы для функции main() - C++

Восстановить пароль Регистрация
 
karl 777
0 / 0 / 0
Регистрация: 29.06.2013
Сообщений: 58
23.07.2013, 09:00     Аргументы для функции main() #1
Я совершенно не понял, каким образом работает, допустим вот такой фрагмент программы:
C
1
2
3
4
5
6
7
8
9
10
int main(int argc, char **argv)
{
    if (argc>1)
    {
        int i;
        for (i=1; i<argc; ++i)
            cout<<argv[i]<<' ';
        cout<<argv[i];
    }
}
Мне не ясна сама идея, подскажите.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.07.2013, 09:00     Аргументы для функции main()
Посмотрите здесь:

C++ Аргументы функции main
Аргументы командной строки в функции main C++
Аргументы функции main C++
C++ аргументы функции main()
Аргументы, передаваемые в main C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4839 / 2978 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 10
Завершенные тесты: 1
23.07.2013, 09:03     Аргументы для функции main() #2
argc - количество аргументов, включая имя самой программы ( argv[0]б например: main.exe )
argv - сами аргументы от argv[0] до argv[argc - 1] включительно.
Например, командная строка: main.exe aaa bbb
тогда,
argc = 3
argv[0] = main.exe
argv[1] = aaa
argv[2] = bbb
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5547 / 2561 / 233
Регистрация: 01.11.2011
Сообщений: 6,330
Завершенные тесты: 1
23.07.2013, 09:06     Аргументы для функции main() #3
C
1
2
3
4
5
6
7
8
9
10
int main(int argc, char **argv)
{
    if (argc>1) // Если передаваемых в программу
    {           //   при запуске аргументов больше одного...
        int i;
        for (i=1; i<argc; ++i)
            cout<<argv[i]<<' '; // ...то вывести их все
        cout<<argv[i];
    }
}
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 319
Регистрация: 30.03.2009
Сообщений: 14,121
Записей в блоге: 26
23.07.2013, 09:11     Аргументы для функции main() #4
Человек, судя по всему, работает из-под IDE, и ему непонятно, откуда могут взяться аргументы
karl 777
0 / 0 / 0
Регистрация: 29.06.2013
Сообщений: 58
23.07.2013, 09:13  [ТС]     Аргументы для функции main() #5
Цитата Сообщение от lazybiz Посмотреть сообщение
Например, командная строка: main.exe aaa bbb
Как всем этим пользоваться, в каких случаях это выгодно?

Добавлено через 1 минуту
Цитата Сообщение от Evg Посмотреть сообщение
Человек, судя по всему, работает из-под IDE, и ему непонятно, откуда могут взяться аргументы
Вы попали в точку, где их взять, аргументы?
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
23.07.2013, 09:15     Аргументы для функции main() #6
karl 777, пользовались когда-нибудь утилитой ping?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
23.07.2013, 09:15     Аргументы для функции main() #7
Цитата Сообщение от karl 777 Посмотреть сообщение
Как всем этим пользоваться, в каких случаях это выгодно?
Цитата Сообщение от karl 777 Посмотреть сообщение
Вы попали в точку, где их взять, аргументы?
Под виндой:
нажмите ПКМ в проводнике на каком-нибудь файле -> открыть с помощью -> ищем свою прогу -> смотрим вывод

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <cstdlib>
using std::cout;
int main(int argc, char **argv)
{
    if (argc>1)
    {
        int i;
        for (i=1; i<argc; ++i)
            cout<<argv[i]<<' ';
    }
    system("pause");
}
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5547 / 2561 / 233
Регистрация: 01.11.2011
Сообщений: 6,330
Завершенные тесты: 1
23.07.2013, 09:49     Аргументы для функции main() #8
Пишем:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <cstdlib>
using std::cout;
int main(int argc, char **argv)
{
    if (argc>1)
    {
        int i;
        for (i=1; i<argc; ++i)
            cout<<argv[i]<<' ';
    }
    system("pause");
}
Собираем .exe
Открываем командную строку:
Аргументы для функции main()
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
23.07.2013, 12:30     Аргументы для функции main() #9
Цитата Сообщение от karl 777 Посмотреть сообщение
Вы попали в точку, где их взять, аргументы?
При запуске из-под IDE зависит от IDE. В VS2010 например: "свойства проекта" -> "отладка".
Миниатюры
Аргументы для функции main()  
zer0mail
2177 / 1860 / 187
Регистрация: 03.07.2012
Сообщений: 6,618
Записей в блоге: 1
23.07.2013, 12:39     Аргументы для функции main() #10
[удалить]
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
23.07.2013, 12:46     Аргументы для функции main() #11
Цитата Сообщение от zer0mail Посмотреть сообщение
а теперь консоль на VS видит только два параметра (строка с prog не передается)
Какой тип проекта? Вроде бы такое в C# (и в Java кажется тоже) было, но уж точно не в C++.
zer0mail
2177 / 1860 / 187
Регистрация: 03.07.2012
Сообщений: 6,618
Записей в блоге: 1
23.07.2013, 12:53     Аргументы для функции main() #12
Нет, ошибся . Это в C# (и там один аргумент у Main)
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 319
Регистрация: 30.03.2009
Сообщений: 14,121
Записей в блоге: 26
23.07.2013, 12:57     Аргументы для функции main() #13
Цитата Сообщение от karl 777 Посмотреть сообщение
Вы попали в точку, где их взять, аргументы?
Если ты когда-нибудь работал в консоли (терминале), то наверняка запускал программы типа dir, ping, copy и т.п. Т.е. когда ты в терминале пишешь

Код
ping www.ru -t
то у тебя запускается программа ping, которая получает в main'е три аргументы: argc = 3, argv[0] = "ping", argv[1] = "www.ru", argv[2] = "-t"

Если ты никогда не работал в терминале, а только тыкал мышкой в окошки, то это означает, то на практике ты никогда не сталкивался с этим аргументами, а потому объяснить не получится
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.07.2013, 12:57     Аргументы для функции main()
Еще ссылки по теме:

C++ аргументы main
C++ Шифрование. Аргументы функции MAIN
C++ Аргументы функции main

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

Или воспользуйтесь поиском по форуму:
Tulosba
23.07.2013, 12:57     Аргументы для функции main()
  #14

Не по теме:

Цитата Сообщение от zer0mail Посмотреть сообщение
(и там один аргумент у Main)
Зато какой Цельный массив.

Yandex
Объявления
23.07.2013, 12:57     Аргументы для функции main()
Ответ Создать тему
Опции темы

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