Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 74

Вывод текста описания команд в консоль командной строки при запуске программы через командную строку

21.10.2014, 09:26. Показов 5463. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Есть такая программка которая запускается через командную строку с параметром, например :

C:\папка\spectr.exe /А

При таком запуске программа запустится с каким то установленным параметром. При /B будет установлен другой параметр, при /C - третий и так далее. Но, есть необходимость вывести в консоль командной строки текст с описанием этих самых команд. Например:

C:\папка\spectr.exe /?

/A - установка того то
/B - установка параметра того то
/C - установка того то параметра
и так далее.

Как это можно сделать? Поделитесь опытом, товарищи!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.10.2014, 09:26
Ответы с готовыми решениями:

Не открывается файл при запуске через командную строку
Написал небольшую игру (скорее прототип игры). Игра загружает список уровней с файла "levels.txt", всё лежит в одной папке. Когда...

Ошибка при запуске приложения через командную строку
подскажите, пожалуйста, в чем ошибка(почему не открывает файл)?

Не работает программа при запуске в Windows через командную строку
Дали задание скомпилить cmake под Linux. Там все получилось. Как доп.задание дали перенести и скомпилить cmake на windows через командную...

20
Мастер кустарных методов
 Аватар для LEQADA
232 / 227 / 17
Регистрация: 09.11.2010
Сообщений: 680
21.10.2014, 09:32
МихаилХ, таким же образом. Покажите код условий на параметры.
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
21.10.2014, 09:33
C++
1
2
3
4
5
6
7
8
9
char str[100];
cin.getline(str,100);
if(str[strlen(str)-1]=='?') // последний в строке знак вопроса
{
     cout<<"/A - установка того то"<<endl;
     cout<<"/B - установка того то"<<endl;
     cout<<"/C - установка того то"<<endl;
}else
    system(str);
0
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 74
21.10.2014, 10:03  [ТС]
Вот как пробовал я:
C++
1
2
3
4
5
6
7
8
if (temp2 == L"/?")
{
    CString temp2 = L"/K - кепстр\n/S - спектрограмма\n/D - 3d - спектрограмма\n/P - проходная\n";
    wprintf(L"%s\n", temp2.GetString());
    char s[10] = "ACHTUNG!";
    printf("%s\n", s);
    std::cout << "ACHTUNG!\n" << std::endl;
}
Ни один из способов результата не дал.
У меня mfc-шное приложение и, может по этому не получается вывести текст в консоль.
0
 Аватар для Kverter
37 / 37 / 25
Регистрация: 30.10.2013
Сообщений: 211
21.10.2014, 10:08
А что мешает проверить равенство параметра твоему "/?" и вывести что тебе надо?
0
Мастер кустарных методов
 Аватар для LEQADA
232 / 227 / 17
Регистрация: 09.11.2010
Сообщений: 680
21.10.2014, 10:08
МихаилХ, вам подсказали уже. Не получается так?
0
 Аватар для Kverter
37 / 37 / 25
Регистрация: 30.10.2013
Сообщений: 211
21.10.2014, 10:09
zss, этот человек тебе уже привел пример)))
0
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 74
21.10.2014, 11:41  [ТС]
Нет этот пример не работает у меня. Я привел код своих попыток которые я предпринимал до того как обратился на форум.
0
Мастер кустарных методов
 Аватар для LEQADA
232 / 227 / 17
Регистрация: 09.11.2010
Сообщений: 680
21.10.2014, 11:45
МихаилХ, покажите рабочий код того, как написали проверку для параметра /A.

Добавлено через 2 минуты
И да, опубликовали бы вы тему в разделе Visual C++...
0
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 74
21.10.2014, 12:16  [ТС]
Здесь код обработки команд. Команд не много. При той или иной команде устанавливаются нужные параметры в структуре параметров.
str - выпиленные из командной строки команды, записанные через точку с запятой.
nArg - количество команд.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
    int count = 1;
    CString temp1, temp2;
    temp1 = str;
    while (true)
    {
        temp2 = temp1.Left( temp1.Find(L";"));
        temp1.Delete(0, temp1.Find(L";") + 1);
        if (temp2 == L"/D")
        {
            m_sParamNew.showParams.tdGrammaStart = 1;
            m_sParamNew.showParams.showTDGrammaWindow = 1;
        }
        if (temp2 == L"/S")
        {
            m_sParamNew.showParams.grammaStart = 1;
            m_sParamNew.showParams.showGrammaWindow = 1;
        }
        if (temp2 == L"/K")
        {
            m_sParamNew.showParams.kepstrStart = 1;
            m_sParamNew.showParams.showKepstrWindow = 1;
        }
        if (temp2 == L"/P")
        {
            m_sParamNew.showParams.prohStart = 1;
            m_sParamNew.showParams.showProhodWindow = 1;
        }
        if (temp2 == L"/?")
        {
            temp2 = L"/K - кепстр/S - спектрограмма/D - 3d - спектрограмма/P - проходная";
            wprintf(L"%s\n", temp2.GetString());
            char s[10] = "ACHTUNG!";
            printf("%s", s);
            std::cout << "ACHTUNG!" << std::endl;
            exit(0);
        }
        if (count >= nArg) break;
        count++;
    }
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
21.10.2014, 13:03
Цитата Сообщение от МихаилХ Посмотреть сообщение
char s[10] = "ACHTUNG!";
printf("%s", s);
std::cout << "ACHTUNG!" << std::endl;
Зачем выводить ACHTUNG! Сначала средствами Си, а потом потоковым выводом на cout?
0
 Аватар для Kverter
37 / 37 / 25
Регистрация: 30.10.2013
Сообщений: 211
21.10.2014, 13:18
А что показывает дебаг?
0
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 74
21.10.2014, 13:37  [ТС]
Потому что я использовал все что помнил для вывода текста в консоль. Вот только не один из них не сработал.

А что Дебаг должен был показать? В блок if заходит.
0
 Аватар для Kverter
37 / 37 / 25
Регистрация: 30.10.2013
Сообщений: 211
21.10.2014, 13:41
МихаилХ, посмотри дебагом что у тебя получается в temp2
0
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 74
21.10.2014, 13:48  [ТС]
Цитата Сообщение от Kverter Посмотреть сообщение
посмотри дебагом что у тебя получается в temp2
Посмотрел: собственно записанная мной строка там и лежит. А в чем конкретно сомнения?
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
21.10.2014, 13:54
Странно, что MS еще аналог getopt() не написали (хотя 100% написали, только почему-то в WinAPI не включили).
Если mingw используешь, посмотри на getopt() и getopt_long(). Правда ключи придется передавать через '-', а не через '/'
0
 Аватар для Kverter
37 / 37 / 25
Регистрация: 30.10.2013
Сообщений: 211
21.10.2014, 14:17
МихаилХ, то есть у тебя в temp2 хранится "/?"
0
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 74
21.10.2014, 14:37  [ТС]
Цитата Сообщение от Kverter Посмотреть сообщение
то есть у тебя в temp2 хранится "/?"
Не после в хода в блок if в temp2 лежит
"/K - кепстр/S - спектрограмма/D - 3d - спектрограмма/P - проходная"
0
 Аватар для Kverter
37 / 37 / 25
Регистрация: 30.10.2013
Сообщений: 211
21.10.2014, 15:05
МихаилХ, а ахтунг то выводится?

Добавлено через 11 минут
МихаилХ, я не знаю что такое случилась там, но у меня
C++
1
wprintf(L"%s\n", temp2.GetString());
это работает
0
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 74
21.10.2014, 15:29  [ТС]
Цитата Сообщение от Kverter Посмотреть сообщение
это работает
Да в том то и дело что у меня ничего не выводится.
А вы из какого места программы делаете вывод?
Просто я делаю вывод в командную строку делаю из функции OnInitDialog().
Может я из того места вывожу?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.10.2014, 15:29
Помогаю со студенческими работами здесь

Ошибка при запуске через командную строку
Когда компилирую через IntelJ Idea всё норм. Если пытаюсь запустить через командную строку ошибка ...

Написание текста в обратном порядке через командную строку
Помогите написать прогу которая после ввода текста пишет его в обратном порядке.До завтра нужно сделать.Пжл

Запуск программы через командную строку
Проблема в следующем! Например написана программка сложения двух чисел, после её запуска в КС и ввода двух чисел программа выполняет...

Добавление при запуске ссылки на рекламный сайт в командную строку
Добрый день. При запуске Google Chrome постоянно открывает &quot;izogreb.ru&quot;. Ярлыки чистые, открывается сайт даже непосредственно при запуске...

Как убрать командную строку при запуске Windows Forms?
В процессе написания программы на Visual C++ в какой-то момент произошло так, что перед открытием окошка exe файла сначала появляется...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru