Форум программистов, компьютерный форум 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. Просмотров 1595. Ответов 11
Метки нет (Все метки)

Если я правильно понимаю, то int argc это передача аргумента программе, т. е если argc>1 то программе передан хотя бы один аргумент, если argc=1, то аргументов нет. У меня вопрос такого плана: как передать аргумент программе????
P.S. Заранее спасибо за помошь.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
1644 / 1272 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
23.06.2013, 12:23     Подскажите пожалуйста с int main(int argc, char*argv[]) #2
надо запустить прогу из командной строки cmd.exe (напечатаь имя проги и через пробелы аргументы)
Байт
Эксперт C
15846 / 10173 / 1524
Регистрация: 24.12.2010
Сообщений: 19,186
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
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 831
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
Каратель
Эксперт С++
6553 / 3973 / 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
Каратель
Эксперт С++
6553 / 3973 / 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
642 / 563 / 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 main() или int main(void)?
C++ Как превести из char* в int и наоборот из int в char*?
C++ Форматирование строк, char to int & int to char
C++ [BCC32 Error] File1.cpp(74): E2285 Could not find a match for 'student1::student1(const char *,int,int)'

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

Или воспользуйтесь поиском по форуму:
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[])
Ответ Создать тему
Опции темы

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