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

Аргументы командной сроки - C++

Восстановить пароль Регистрация
 
Progers
New to C++
 Аватар для Progers
83 / 44 / 5
Регистрация: 14.01.2013
Сообщений: 258
28.08.2013, 21:41     Аргументы командной сроки #1
Здравствуйте,я начал изучать аргументы командной строки, и решил попробовать написать не большую программу.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
using namespace std;
 
int main(int num,char* command[])
{
  
  if(command[1] == "start") 
   {
     cout << "You have selected start" << endl;
   }
  return 0;
}
Потом пишу комманду g++ main.cpp
Потом прописываю ./a.out start
Но он нечего не выводит.
Подскажите как это исправить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.08.2013, 21:41     Аргументы командной сроки
Посмотрите здесь:

Аргументы командной стороки. C++
C++ Аргументы командной строки
Аргументы командной строки C++
C++ Аргументы командной строки
C++ Аргументы командной строки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
28.08.2013, 21:52     Аргументы командной сроки #2
может для начала
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
using namespace std;
 
int main(int num,char* command[])
{
   for (int i = 0; i < num; i++) cout << command[i] << endl;
  return 0;
}
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
28.08.2013, 21:54     Аргументы командной сроки #3
строки сравниваются через функцию strcmp()

если результат равен нулю, значит они равны
C++
1
2
3
4
if (strcmp(command[1], "start") == 0)
{
    cout << "You have selected start" << endl;
}
Progers
New to C++
 Аватар для Progers
83 / 44 / 5
Регистрация: 14.01.2013
Сообщений: 258
28.08.2013, 21:57  [ТС]     Аргументы командной сроки #4
BigLow, Спасибо, помогло.
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
28.08.2013, 22:34     Аргументы командной сроки #5
вот ещё вариант более похожий на C++, а не на C
C++
1
2
3
4
5
6
7
#include <iostream> 
using namespace std;
int main(int num,char* command[])
{
  if(string(command[1]) == "start") cout << "You have selected start" << endl;
  return 0;
}
Добавлено через 9 минут
может быть очень разумно поместить аргументы в вектор
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <string>
#include <vector>
#include <iostream>
 
using namespace std;
 
int main(int num,char* command[])
{
    vector<string> commands(command, command + num);
 
    if(commands[1] == "start")
        cout << "You have selected start" << endl;
    for (int i = 0; i < commands.size(); i++)
        cout << i << " " << commands[i] << endl;
    return 0;
}
Yandex
Объявления
28.08.2013, 22:34     Аргументы командной сроки
Ответ Создать тему
Опции темы

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