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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
#1

Подскажите пожалуйста с int main(int argc, char*argv[]) - C++

23.06.2013, 11:24. Просмотров 1555. Ответов 11
Метки нет (Все метки)

Если я правильно понимаю, то int argc это передача аргумента программе, т. е если argc>1 то программе передан хотя бы один аргумент, если argc=1, то аргументов нет. У меня вопрос такого плана: как передать аргумент программе????
P.S. Заранее спасибо за помошь.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
1634 / 1262 / 128
Регистрация: 21.12.2010
Сообщений: 1,925
Записей в блоге: 7
23.06.2013, 12:23     Подскажите пожалуйста с int main(int argc, char*argv[]) #2
надо запустить прогу из командной строки cmd.exe (напечатаь имя проги и через пробелы аргументы)
Байт
Эксперт C
15538 / 9880 / 1484
Регистрация: 24.12.2010
Сообщений: 18,479
23.06.2013, 12:30     Подскажите пожалуйста с int main(int argc, char*argv[]) #3
На консоли набираешь
Код
прога аргумент1 аргумент2
Если хочешь вызвать из другой программы
C++
1
system("прога аргумент1 аргумент2");
Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
24.06.2013, 00:04  [ТС]     Подскажите пожалуйста с int main(int argc, char*argv[]) #4
@igorrr37, @Байт, Какие аргументы мне нужно вводить, хоть пример таких аргументов приведите пожалуйста.
P.S. Например если программа называется 1.срр и расположена в F:\\ Мне нужно написать в коммандной строке F:\\1.cpp (а какие аргументы мне ей передовать????)
Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
24.06.2013, 00:50     Подскажите пожалуйста с int main(int argc, char*argv[]) #5
@Nikko12, program.exe в директории C:\
В командной строке вводишь C:\program.exe abc edf 123
Тогда argc = 4
argv[0] = "C:\program.exe";
argv[1] = "abc";
argv[2] = "edf";
argv[3] = "123";

Добавлено через 54 секунды
Цитата Сообщение от Nikko12 Посмотреть сообщение
Например если программа называется 1.срр
Исполняемый файл в Windows имеет расширение *.exe
Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
24.06.2013, 09:49  [ТС]     Подскажите пожалуйста с int main(int argc, char*argv[]) #6
@Olivеr, Спасибо большое, а вот еще такой вопрос. Как можно узнать какое кол-во аргументов переданно программе из самой программы???
Jupiter
Каратель
Эксперт С++
6549 / 3969 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.06.2013, 09:55     Подскажите пожалуйста с int main(int argc, char*argv[]) #7
Цитата Сообщение от Nikko12 Посмотреть сообщение
Как можно узнать какое кол-во аргументов переданно программе из самой программы?
Цитата Сообщение от Nikko12 Посмотреть сообщение
int argc
это и есть количесво аргументов
Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
24.06.2013, 11:28  [ТС]     Подскажите пожалуйста с int main(int argc, char*argv[]) #8
@Jupiter, Благодарю, а как тогда сделать, что бы при опрделенном аргументе выполнялось определенное действие, т.е.:
C++
1
2
3
4
5
6
7
8
if(argv[1]=='1')
    {
        //какое-то действие
    }
if(argv[1]=='0')
    {
        //какое-то действие
    }
P.S. В виде аргументов я хочу ввести 1 и 0, и в зависимости от вводимого аргумента должно выполнятся определенно действие.
Компилятор ругается на строчки if(argv[1]=='1') и if(argv[1]=='0') пишет "error: ISO C++ forbids comparison between pointer and integer" Как правильно их использовать???
Jupiter
Каратель
Эксперт С++
6549 / 3969 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.06.2013, 11:30     Подскажите пожалуйста с int main(int argc, char*argv[]) #9
C++
1
2
3
4
5
6
7
8
9
10
11
#include <cstring>
 
const char* FIRST = "0";
const char* SECOND = "1";
 
if (std::strcmp(argv[1], FIRST) == 0)
{
}
else if (std::strcmp(argv[1], SECOND) == 0)
{
}
Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
24.06.2013, 11:46  [ТС]     Подскажите пожалуйста с int main(int argc, char*argv[]) #10
@Jupiter,Большое спасибо за помощь, ответе, пожалуйста еще на 1 вопрос, зачем так передавать аргументы, с какой целью?? Ведь их можно ввести с клавиатуры или считать из файла...
aLarman
641 / 562 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
24.06.2013, 16:57     Подскажите пожалуйста с int main(int argc, char*argv[]) #11
так работаю все программы вспомните любую команду вводимую в командной строке...пример
ping 192.168.133.224
192.168.133.224 выступает в роли аргумента, это же удобно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2013, 23:18     Подскажите пожалуйста с int main(int argc, char*argv[])
Еще ссылки по теме:

C++ Чтение из файла, название передано как параметры функции main argc & argv
C++ Int _tmain(int argc, _TCHAR* argv[]) и др
C++ В каком случае надо начинать с int main() или с int _tmain( int argc, _TCHAR* argv[] ) и т.д.?
C++ Форматирование строк, char to int & int to char
Реализация функции char *padl(const char *string, int len, int c=' ') C++

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

Или воспользуйтесь поиском по форуму:
Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
24.06.2013, 23:18  [ТС]     Подскажите пожалуйста с int main(int argc, char*argv[]) #12
@aLarman, Логично, Но я в принципе уже догадался сам, но все равно спасибо
Yandex
Объявления
24.06.2013, 23:18     Подскажите пожалуйста с int main(int argc, char*argv[])
Ответ Создать тему
Опции темы

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