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

C++

Войти
Регистрация
Восстановить пароль
 
smartes
0 / 0 / 0
Регистрация: 12.04.2013
Сообщений: 34
#1

Аргументы при запуске из терминала - C++

08.02.2016, 13:52. Просмотров 272. Ответов 2
Метки нет (Все метки)

Доброго времени суток!
Подскажите как реализовать с наименьшими изменениями.
Есть программа на C++ с switch те можно выбирать что именно выполнять, где аргумент для switch вводится через cin.
Как можно выбирать аргумент еще до запуска программы из терминала, что-то типа ./main --14 где 14 это номер для switch.

Заранее спасибо.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2016, 13:52     Аргументы при запуске из терминала
Посмотрите здесь:
При запуске из среды программа работает, при запуске выполняемого файла выдает ошибку C++
При выполнение exe файла быстро схлопывается окно терминала C++
C++ Linux Программа работает при запуске в CodeLite, но не работает при запуске в консоли
C++ COM Транслируются ли аргументы функции CoCreateInstance в аргументы функции DllGetClassObject?
C++ Где должны быть аргументы (слева или справа) по отношению к перегружаемому знаку при перегрузке операций?
C++ Аргументы функции: что значит "большие" и "небольшие" аргументы?
Почему при вводе русского текста после cout<< при запуске программы выписывает какие то каракули C++ Builder
как сделать логотип при загрузке программы (типа как при запуске офиса) C++
Ошибка при запуске C++
Ошибка при запуске C++ C++
C++ Builder Ошибка при запуске
Ошибка при запуске... C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AlexVRud
442 / 152 / 38
Регистрация: 04.07.2014
Сообщений: 430
08.02.2016, 14:26     Аргументы при запуске из терминала #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
 
int main(int argc, char* argv[]) {
  int64_t m;
 
  if (argc>1) {
    m = std::stoll(std::string(argv[1]));
  } else {
    m = 1;
  }
  
  std::cout << m << std::endl;
 
  return 0;
}
Добавлено через 4 минуты
Либо
Bash
1
echo 14 | ./progname
Либо
Bash
1
./progname < data.txt
Croessmah
Модератор
Эксперт CЭксперт С++
13063 / 7326 / 817
Регистрация: 27.09.2012
Сообщений: 18,085
Записей в блоге: 3
Завершенные тесты: 1
08.02.2016, 16:15     Аргументы при запуске из терминала #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <vector>
#include <string>
 
template < typename T >
std::ostream & operator << ( std::ostream & stream , const std::vector<T> & vec )
{
    for ( typename std::vector<T>::const_iterator it = vec.begin() , itEnd = vec.end() ; it != itEnd ; ++it )
        stream << *it << '\n' ;
    return stream ;
}
 
int main( int argc , char ** argv )
{
    std::vector < std::string > vec ( argv , argv+argc ) ; //И все параметры в векторе, анализируйте.
    std::cout << vec << std::endl ;
}
Ответ Создать тему
Опции темы

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