Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/10: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Nikko12
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 162
1

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

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

Если я правильно понимаю, то int argc это передача аргумента программе, т. е если argc>1 то программе передан хотя бы один аргумент, если argc=1, то аргументов нет. У меня вопрос такого плана: как передать аргумент программе????
P.S. Заранее спасибо за помошь.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2013, 11:24
Ответы с готовыми решениями:

Что есть argc и **argv в функции int main(int argc, char **argv)?
Здраствуйте, уважаемые кодеры! Что означает argc и **argv в функции int...

В каком случае надо начинать с int main() или с int _tmain( int argc, _TCHAR* argv[] ) и т.д.?
Не понимаю, с чего начинать. Заранее спс.

Аргументы main(int argc, char *argv[])
Эксперты в с++,объясните пожалуйста новичку примерно понял как использовать эти...

int main() и int _tmain(int argc, _TCHAR* argv[])
При создании нового консольного приложения Microsoft Visual С++ 2010 Express...

что такое int argc, char *argv[] в качестве параметров главной (main) функции?
И зачем

11
igorrr37
1901 / 1508 / 763
Регистрация: 21.12.2010
Сообщений: 2,544
Записей в блоге: 10
23.06.2013, 12:23 2
надо запустить прогу из командной строки cmd.exe (напечатаь имя проги и через пробелы аргументы)
0
Байт
Эксперт C
19228 / 12353 / 2607
Регистрация: 24.12.2010
Сообщений: 25,425
23.06.2013, 12:30 3
На консоли набираешь
Код
прога аргумент1 аргумент2
Если хочешь вызвать из другой программы
C++
1
system("прога аргумент1 аргумент2");
0
Nikko12
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 162
24.06.2013, 00:04  [ТС] 4
@igorrr37, @Байт, Какие аргументы мне нужно вводить, хоть пример таких аргументов приведите пожалуйста.
P.S. Например если программа называется 1.срр и расположена в F:\\ Мне нужно написать в коммандной строке F:\\1.cpp (а какие аргументы мне ей передовать????)
0
Olivеr
413 / 409 / 95
Регистрация: 06.10.2011
Сообщений: 832
24.06.2013, 00:50 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
1
Nikko12
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 162
24.06.2013, 09:49  [ТС] 6
@Olivеr, Спасибо большое, а вот еще такой вопрос. Как можно узнать какое кол-во аргументов переданно программе из самой программы???
0
Jupiter
Каратель
Эксперт С++
6570 / 3991 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.06.2013, 09:55 7
Цитата Сообщение от Nikko12 Посмотреть сообщение
Как можно узнать какое кол-во аргументов переданно программе из самой программы?
Цитата Сообщение от Nikko12 Посмотреть сообщение
int argc
это и есть количесво аргументов
0
Nikko12
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 162
24.06.2013, 11:28  [ТС] 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" Как правильно их использовать???
0
Jupiter
Каратель
Эксперт С++
6570 / 3991 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.06.2013, 11:30 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)
{
}
0
Nikko12
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 162
24.06.2013, 11:46  [ТС] 10
@Jupiter,Большое спасибо за помощь, ответе, пожалуйста еще на 1 вопрос, зачем так передавать аргументы, с какой целью?? Ведь их можно ввести с клавиатуры или считать из файла...
0
aLarman
646 / 567 / 164
Регистрация: 13.12.2012
Сообщений: 2,123
Завершенные тесты: 2
24.06.2013, 16:57 11
так работаю все программы вспомните любую команду вводимую в командной строке...пример
ping 192.168.133.224
192.168.133.224 выступает в роли аргумента, это же удобно
0
Nikko12
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 162
24.06.2013, 23:18  [ТС] 12
@aLarman, Логично, Но я в принципе уже догадался сам, но все равно спасибо
0
24.06.2013, 23:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2013, 23:18

Что означает эта строка? int _tmain(int argc, _TCHAR* argv[])
Всем привет, до этого пользовался DEV, решил пересесть на Visual Studio 2010...

Int _tmain(int argc, _TCHAR* argv[]) и др
Добрый день! При компилировании кода, где присутствует данная строчка int...

Почему _TCHAR выдает ошибку int _tmain(int argc, _TCHAR* argv[])
// ConsoleApplication42.cpp: определяет точку входа для консольного приложения....


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

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

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