C++, w

Potrzebujesz pomocy z C, C++, perl, python, itp.
Awatar użytkownika
Hyphen
Posty: 4
Rejestracja: 21 czerwca 2012, 11:19
Lokalizacja: Warszawa

C++, własna powłoka

Post autor: Hyphen »

Witam.

Piszę program, a mianowicie jest to własna powłoka.

Mam pewien problem, chcę aby powłoka zawierała wbudowane polecenie cd pozwalające na zmianę katalogu roboczego. Polecenie powinno akceptować nazwy ścieżek. Polecenie wykonane bez argumentu powinno zmieniać katalog roboczy na katalog domowy użytkownika.

Nie bardzo wiem jak się do tego zabrać, mój dotychczasowy kod wygląda tak:

Kod: Zaznacz cały

#include <iostream>

#include <string.h>
#include <stdlib.h>


using namespace std;


int main()
{
        string command;
        cout << "\tIf you do not know what a shell command please enter 'help'!\n\n";
        while( command != "exit" )
        {
                if(command == "pwd") //Wbudowane polecenie pwd wyświetlające aktualny katalog roboczy
                        system("pwd");


                else if (command == "cd")
                    system("cd");


                else if (command == "ls")
                    system("ls");


                else if (command == "ll") //Wbudowane polecenie ll odpowiadające poleceniu ls *l.
                    system("ls -l");


                else if (command == "clear")
                    system("clear");


                else if( command == "help" )
                        cout << "pwd - Print name of current/working directory.\ncd - Built-in cd command allows you to change the working directory.\n\n";// mini wersja man pwd


                else if( command != "\0" )
                        cout << "Error: unknown command!\n";
                cout << "#shell --> ";
                cin >> command;
        }
        return 0;
}

Mógłby ktoś doradzić, ewentualnie pokazać na przykładzie jak to powinno być wykonane?
fnmirk
Senior Member
Posty: 8321
Rejestracja: 03 grudnia 2007, 06:37

Post autor: fnmirk »

ODPOWIEDZ