Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
164 / 49 / 27
Регистрация: 04.06.2013
Сообщений: 636
1

Создание консоли

19.08.2016, 17:56. Показов 2616. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Хочу сделать командную строку на основе стандартной, вот код, но никак не пойму как заставить работать команду cd.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int main()
{
    string cmdline;
    
    system("cls");
    system("color 2");
    system("title Green cosole ");
    system("echo Message to console:");
    while(1)
    {
        getline(cin,cmdline);
        if (cmdline=="exit")
        {
            return 0;
        }
        system(cmdline.c_str());
    }
 
    return 0;
}
команда выхода работает только как в коде, просто не реагирует.помогите
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.08.2016, 17:56
Ответы с готовыми решениями:

Создание консоли
подскажите код: менюшка: 1. вывести на экран 2. сделать тото. 3. выйти вопрос - как это...

Создание таблицы в консоли
условие задания программа #include<iostream> #include<math.h> #include <stdio.h> using...

Создание консоли из приложения
Необходимо создать консоль из приложения. Используем CreateConsole с параметром DETACHED_PROCESS....

Создание приложения не в консоли
Здравствуйте. Более менее овладел основными понятиями в c++. Все это время писал приложения в...

9
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
19.08.2016, 18:35 2
Цитата Сообщение от mish_k98 Посмотреть сообщение
команда выхода работает только как в коде, просто не реагирует.помогите
А чего вы хотите-то?
0
47 / 47 / 31
Регистрация: 02.04.2016
Сообщений: 312
19.08.2016, 22:23 3
Хоть бы полностью код написал(вместе с #include<header.h>), а то как угадать в какой библиотеке ты getline(cin,cmdline); нашел
0
164 / 49 / 27
Регистрация: 04.06.2013
Сообщений: 636
20.08.2016, 15:12  [ТС] 4
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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream>
//#include <windows.h>
#include <string.h>
#include <algorithm>
using namespace std;
int main()
{
    string cmdline;
    
    system("cls");
    system("color 2");
    system("title Green cosole");
    system("echo Message to console:");
    while(1)
    {
        getline(cin,cmdline);
        if (cmdline=="exit")
        {
            return 0;
        }
        system(cmdline.c_str());
    }
 
    return 0;
}
вот весь код, почему не работают все команды командной строки?
0
47 / 47 / 31
Регистрация: 02.04.2016
Сообщений: 312
20.08.2016, 15:48 5
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
//#include <stdio.h>
//#include <stdlib.h>
//#include <conio.h>
#include <iostream>
//#include <windows.h>
#include <string.h>
//#include <algorithm>
 
using namespace std;
 
int main()
{
    string cmdline;
    char buffer[256];
 
    system("cls");
    system("color 2");
    system("title Green cosole");
    system("echo Message to console:");
    while (true)
    {
        cin.getline(buffer, 256);
        cmdline = buffer;
        if (cmdline == "exit")
        {
            break;
        }
        system(cmdline.c_str());
    }
 
    return 0;
}
0
164 / 49 / 27
Регистрация: 04.06.2013
Сообщений: 636
20.08.2016, 15:54  [ТС] 6
stdlib коментировать не нужно (для работы system), и буфер не решает моей проблемы.
0
Падаван С++
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
20.08.2016, 16:02 7
mish_k98, Есть идея, хотя я не уверен, возможно не все команды доступны ? Попробуйте написать help и глянуть что он выдаст

Добавлено через 3 минуты
Еще идея может нужно некоторые команды по разному обрабатывать, допустим при вызове cd мы сначала пишем system("cd"); и потом путь типо второй командой system
0
164 / 49 / 27
Регистрация: 04.06.2013
Сообщений: 636
20.08.2016, 16:06  [ТС] 8
help выдал все команды.насчёт второго сустем я не думаю, стока ведь нормально считывается и другие команды работают
и если просто написать cd, то показывает путь данной программы, а не домашнего каталога
0
Падаван С++
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
20.08.2016, 16:39 9
mish_k98, ну допустим dir нам выдает что мы сейчас в каталоге нашей программы, с помощью него нормально можно узнать что там в других папках по пути, но cd чото не хочет кушать

Добавлено через 28 минут
А если вот так
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
#include <iostream>
#include <string.h>
#include <direct.h>
 
using namespace std;
 
 
int main()
{
    string cmdline;
    char buffer[256];
 
    system("cls");
    system("color 2");
    system("title Green cosole");
    system("echo Message to console:");
    while (true)
    {
        cin.getline(buffer, 256);
        cmdline = buffer;
        if (cmdline == "exit")
        {
            break;
        }
        else if (cmdline == "cd") {
            cmdline.clear();
            cout << "Enter path: ";
            cin.getline(buffer, 256);
            cmdline = buffer;
 
            _chdir(cmdline.c_str());
            continue;
        }
        system(cmdline.c_str());
    }
 
    return 0;
}
ну проблемма в том что приходится писать сначала cd а потом вводить путь, ну я может направил вам идею, на самом деле делов не много проверить если есть команда cd в строке и распарсить ее и вытащить путь и впихнуть его в _chdir

Добавлено через 1 минуту
А насколько я понял проблемма в том что cd запускает новый процесс и он сразу заканчивается. Поэтому предлагаю вариант с chdir
0
47 / 47 / 31
Регистрация: 02.04.2016
Сообщений: 312
20.08.2016, 16:44 10
Цитата Сообщение от mish_k98 Посмотреть сообщение
stdlib коментировать не нужно (для работы system)
ну у меня работает и без этого - вы можете разкомментировать.
код у меня работает так же как и моя системная командная строка(точно так же cd не меняет каталог) вот проверил - набрал в программе type D:\<путь до файла>\<имя файла>.txt - нормально открылся файл и вывел в консоль то что там было
0
20.08.2016, 16:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2016, 16:44
Помогаю со студенческими работами здесь

Создание окна из - под консоли
Здравствуйте. Нас тут озадачили в универе надеванием штанов через голову. Суть: программа...

Создание меню в консоли (не контекстное)
Доброй ночи, кому вечеру и утру в Америке. Сижу на втором курсе и еще до такой темы не доходили,...

Создание консоли для потока
Вомзожно ли создать несколько консолей для одного процесса ? Хотелось бы каждому потоку выделить...

Создание файла с параметрами из консоли
Вообщем это должно работать, но не работает. В принципе работы программы разобраться очень просто,...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru