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

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

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

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

23.07.2013, 09:00. Просмотров 580. Ответов 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() (C++):

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

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

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

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

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

обработать аргументы функции main - C++
Всем привет. В main() передается строка и число. Как их можно обработать? На это выскакивает ошибка char* str= new char; ...

13
castaway
Эксперт С++
4924 / 3032 / 372
Регистрация: 10.11.2010
Сообщений: 11,085
Записей в блоге: 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
Супер-модератор
Эксперт С++
5689 / 2744 / 258
Регистрация: 01.11.2011
Сообщений: 6,699
Завершенные тесты: 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
18885 / 6841 / 498
Регистрация: 30.03.2009
Сообщений: 19,271
Записей в блоге: 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
2548 / 1728 / 264
Регистрация: 24.11.2012
Сообщений: 4,349
23.07.2013, 09:15 #6
karl 777, пользовались когда-нибудь утилитой ping?
0
Croessmah
Ушел
13769 / 8019 / 924
Регистрация: 27.09.2012
Сообщений: 19,741
Записей в блоге: 3
Завершенные тесты: 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
Супер-модератор
Эксперт С++
5689 / 2744 / 258
Регистрация: 01.11.2011
Сообщений: 6,699
Завершенные тесты: 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
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
23.07.2013, 12:30 #9
Цитата Сообщение от karl 777 Посмотреть сообщение
Вы попали в точку, где их взять, аргументы?
При запуске из-под IDE зависит от IDE. В VS2010 например: "свойства проекта" -> "отладка".
0
Миниатюры
Аргументы для функции main()  
zer0mail
2447 / 2081 / 205
Регистрация: 03.07.2012
Сообщений: 7,559
Записей в блоге: 1
23.07.2013, 12:39 #10
[удалить]
0
Tulosba
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
23.07.2013, 12:46 #11
Цитата Сообщение от zer0mail Посмотреть сообщение
а теперь консоль на VS видит только два параметра (строка с prog не передается)
Какой тип проекта? Вроде бы такое в C# (и в Java кажется тоже) было, но уж точно не в C++.
0
zer0mail
2447 / 2081 / 205
Регистрация: 03.07.2012
Сообщений: 7,559
Записей в блоге: 1
23.07.2013, 12:53 #12
Нет, ошибся . Это в C# (и там один аргумент у Main)
0
Evg
Эксперт CАвтор FAQ
18885 / 6841 / 498
Регистрация: 30.03.2009
Сообщений: 19,271
Записей в блоге: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.07.2013, 12:57
Привет! Вот еще темы с ответами:

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

Как на это код добавить аргументы функции main? - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;iomanip&gt; #include &lt;cstdio&gt; #include &lt;Windows.h&gt; using namespace std; int...

Как задать параметры запуска (аргументы командной строки) функции main? - C++
Как их задать в процессе запуска? т.е. пользователь запускает приложение и указывает параметры запуска при этом. Где про них почитать...

аргументы main - C++
int main() { } int main(int argc, char **argv) { }


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

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

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