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

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

Войти
Регистрация
Восстановить пароль
 
karl 777
0 / 0 / 0
Регистрация: 29.06.2013
Сообщений: 58
#1

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

23.07.2013, 09:00. Просмотров 514. Ответов 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];
    }
}
Мне не ясна сама идея, подскажите.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4869 / 3008 / 370
Регистрация: 10.11.2010
Сообщений: 11,059
Записей в блоге: 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
5549 / 2583 / 235
Регистрация: 01.11.2011
Сообщений: 6,384
Завершенные тесты: 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
Эксперт CАвтор FAQ
 Аватар для Evg
17022 / 5427 / 336
Регистрация: 30.03.2009
Сообщений: 14,688
Записей в блоге: 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
2442 / 1614 / 235
Регистрация: 24.11.2012
Сообщений: 3,962
23.07.2013, 09:15     Аргументы для функции main() #6
karl 777, пользовались когда-нибудь утилитой ping?
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12508 / 7070 / 794
Регистрация: 27.09.2012
Сообщений: 17,457
Записей в блоге: 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
5549 / 2583 / 235
Регистрация: 01.11.2011
Сообщений: 6,384
Завершенные тесты: 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
:)
Эксперт С++
4384 / 3227 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
23.07.2013, 12:30     Аргументы для функции main() #9
Цитата Сообщение от karl 777 Посмотреть сообщение
Вы попали в точку, где их взять, аргументы?
При запуске из-под IDE зависит от IDE. В VS2010 например: "свойства проекта" -> "отладка".
Миниатюры
Аргументы для функции main()  
zer0mail
2308 / 1934 / 192
Регистрация: 03.07.2012
Сообщений: 6,923
Записей в блоге: 1
23.07.2013, 12:39     Аргументы для функции main() #10
[удалить]
Tulosba
:)
Эксперт С++
4384 / 3227 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
23.07.2013, 12:46     Аргументы для функции main() #11
Цитата Сообщение от zer0mail Посмотреть сообщение
а теперь консоль на VS видит только два параметра (строка с prog не передается)
Какой тип проекта? Вроде бы такое в C# (и в Java кажется тоже) было, но уж точно не в C++.
zer0mail
2308 / 1934 / 192
Регистрация: 03.07.2012
Сообщений: 6,923
Записей в блоге: 1
23.07.2013, 12:53     Аргументы для функции main() #12
Нет, ошибся . Это в C# (и там один аргумент у Main)
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
17022 / 5427 / 336
Регистрация: 30.03.2009
Сообщений: 14,688
Записей в блоге: 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
А как передавать аргументы и где их определять в функцию main() ? C++
C++ обработать аргументы функции main

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

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

Не по теме:

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

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

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