Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
karl 777
0 / 0 / 0
Регистрация: 29.06.2013
Сообщений: 63
1

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

23.07.2013, 09:00. Просмотров 624. Ответов 13
Метки нет (Все метки)

Я совершенно не понял, каким образом работает, допустим вот такой фрагмент программы:
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];
    }
}
Мне не ясна сама идея, подскажите.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.07.2013, 09:00
Ответы с готовыми решениями:

Аргументы функции main
что значит определение оформить как функцию и сортировку оформить как функцию??

Аргументы функции main()
Написать программу для определения, чередуются ли в данной последовательности символы ‘+’ и ‘-‘, и...

Аргументы функции main
Здравствуйте, программисты! Написать программу для определения, есть ли среди символов этой...

Аргументы функции main
Здравствуйте! Очень нужна Ваша помощь... Дано натуральное n. Для n, вводимого с клавиатуры...

аргументы функции main
помогите разобраться создаю файл c.cpp #include &lt;iostream&gt; using namespace std; int main(int...

13
castaway
Эксперт С++
4938 / 3043 / 455
Регистрация: 10.11.2010
Сообщений: 11,119
Записей в блоге: 10
Завершенные тесты: 1
23.07.2013, 09:03 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
0
SatanaXIII
Почетный модератор
Эксперт С++
5795 / 2790 / 385
Регистрация: 01.11.2011
Сообщений: 6,792
Завершенные тесты: 1
23.07.2013, 09:06 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];
    }
}
0
Evg
Эксперт CАвтор FAQ
19789 / 7429 / 560
Регистрация: 30.03.2009
Сообщений: 20,710
Записей в блоге: 30
23.07.2013, 09:11 4
Человек, судя по всему, работает из-под IDE, и ему непонятно, откуда могут взяться аргументы
0
karl 777
0 / 0 / 0
Регистрация: 29.06.2013
Сообщений: 63
23.07.2013, 09:13  [ТС] 5
Цитата Сообщение от lazybiz Посмотреть сообщение
Например, командная строка: main.exe aaa bbb
Как всем этим пользоваться, в каких случаях это выгодно?

Добавлено через 1 минуту
Цитата Сообщение от Evg Посмотреть сообщение
Человек, судя по всему, работает из-под IDE, и ему непонятно, откуда могут взяться аргументы
Вы попали в точку, где их взять, аргументы?
0
0x10
2638 / 1792 / 298
Регистрация: 24.11.2012
Сообщений: 4,452
23.07.2013, 09:15 6
karl 777, пользовались когда-нибудь утилитой ping?
0
Croessmah
++Ͻ
15235 / 8625 / 1640
Регистрация: 27.09.2012
Сообщений: 21,235
Записей в блоге: 2
Завершенные тесты: 1
23.07.2013, 09:15 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");
}
0
SatanaXIII
Почетный модератор
Эксперт С++
5795 / 2790 / 385
Регистрация: 01.11.2011
Сообщений: 6,792
Завершенные тесты: 1
23.07.2013, 09:49 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()
0
Tulosba
:)
Эксперт С++
4751 / 3245 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
23.07.2013, 12:30 9
Цитата Сообщение от karl 777 Посмотреть сообщение
Вы попали в точку, где их взять, аргументы?
При запуске из-под IDE зависит от IDE. В VS2010 например: "свойства проекта" -> "отладка".
0
Миниатюры
Аргументы для функции main()  
zer0mail
2458 / 2094 / 217
Регистрация: 03.07.2012
Сообщений: 7,592
Записей в блоге: 1
23.07.2013, 12:39 10
[удалить]
0
Tulosba
:)
Эксперт С++
4751 / 3245 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
23.07.2013, 12:46 11
Цитата Сообщение от zer0mail Посмотреть сообщение
а теперь консоль на VS видит только два параметра (строка с prog не передается)
Какой тип проекта? Вроде бы такое в C# (и в Java кажется тоже) было, но уж точно не в C++.
0
zer0mail
2458 / 2094 / 217
Регистрация: 03.07.2012
Сообщений: 7,592
Записей в блоге: 1
23.07.2013, 12:53 12
Нет, ошибся . Это в C# (и там один аргумент у Main)
0
Evg
Эксперт CАвтор FAQ
19789 / 7429 / 560
Регистрация: 30.03.2009
Сообщений: 20,710
Записей в блоге: 30
23.07.2013, 12:57 13
Цитата Сообщение от karl 777 Посмотреть сообщение
Вы попали в точку, где их взять, аргументы?
Если ты когда-нибудь работал в консоли (терминале), то наверняка запускал программы типа dir, ping, copy и т.п. Т.е. когда ты в терминале пишешь

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

Если ты никогда не работал в терминале, а только тыкал мышкой в окошки, то это означает, то на практике ты никогда не сталкивался с этим аргументами, а потому объяснить не получится
0
Tulosba
23.07.2013, 12:57     Аргументы для функции main()
  #14

Не по теме:

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

0
23.07.2013, 12:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.07.2013, 12:57
Привет! Вот еще темы с ответами:

Обработать аргументы функции main
Всем привет. В main() передается строка и число. Как их можно обработать? На это выскакивает...

Шифрование. Аргументы функции MAIN
Привет всем:) Нужна помощь... С++... Аргументы функции MAIN. Фраза шифруется следующим образом:...

Аргументы командной строки в функции main
Вопрос собственно говоря банальный в домашнем задании требуеться: параметр пронраммы...


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

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

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