Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Spacja po poleceniu nie wymagającym jej.

Ostatnio zmodyfikowano 2015-04-02 10:04
Autor Wiadomość
C-Objective
Temat założony przez niniejszego użytkownika
[C++] Spacja po poleceniu nie wymagającym jej.
» 2015-04-01 16:52:52
Witam. Mam taki kodzik:
C/C++
#include <iostream>
#include <string>
#include <fstream>
#include <windows.h>

using namespace std;

char * pol[] = { "EXIT", "STOP", "RUN", "NEW", "DELETE", "CMDS", "CLEAR", "RESTART", "EDIT", "VAL", "VER", "CALC" };

int main( int argc, char ** argv ) {
    string command, argument;
    cout << "Command Interpreter" << endl;
    cout << "by C-Objective." << endl;
    cout << "SHELL>> ";
    getline( std::cin, command, ' ' );
    const char * polecenie = command.c_str();
    for( int i = 0; i < command.length(); i++ ) {
        command[ i ] = toupper( command[ i ] );
    }
    if( command == pol[ 0 ] ) { //Exit DONE
        exit( - 1 );
    }
    else if( command == pol[ 1 ] ) { //Stop program DONE
        int time;
        cin >> time;
        Sleep( time );
    }
    else if( command == pol[ 2 ] ) {
        getline( std::cin, argument );
       
    }
    else if( command == pol[ 3 ] ) {
       
    }
    else if( command == pol[ 4 ] ) {
       
    }
    else if( command == pol[ 5 ] ) {
       
    }
    else if( command == pol[ 6 ] ) {
       
    }
    else if( command == pol[ 7 ] ) {
       
    }
    else if( command == pol[ 8 ] ) {
       
    }
    else if( command == pol[ 9 ] ) {
       
    }
    else if( command == pol[ 10 ] ) {
       
    }
    else if( command == pol[ 11 ] ) {
       
    }
    return 0;
}
Wiem, że te "ify" wyglądają strasznie, ale skupmy się na problemie. aby wyjść z programu muszę wpisać "exit " ze spacją. Czy ktoś wie co zrobić żeby można było pisać "exit", a polecenie
stop działało poprawnie?
P-129811
SeaMonster131
» 2015-04-01 17:08:18
getline( std::cin, command, ' ' );
getline() będzie wczytywać dane ze strumienia aż do napotkania spacji.
P-129817
C-Objective
Temat założony przez niniejszego użytkownika
» 2015-04-01 17:10:18
No tak ale jak nie będzie wczytywać do spacji wtedy stop nie zadziała...
P-129819
pekfos
» 2015-04-01 18:11:57
Czemu nie wczytywać poleceń przez >>?
P-129824
Brunon3
» 2015-04-01 18:13:32
Ten Twój 'interpreter' wczyta tylko jedno polecenie, o to Ci chodzi?

-BD.
P-129825
C-Objective
Temat założony przez niniejszego użytkownika
» 2015-04-02 10:04:46
pekfos, właśnie na to samo wpadłem, ale na cpp0x jestem narazie tylko po to, aby wam powiedzieć, że właściwe zastosowanie std::cin mogło by pomóc. Wymóżdżyłem wcześniej coś takiego:
getline( std::cin, command, ' ' || /*Tutaj wpisz znaki koncowe wszystkich bezargumentowych polecen*/ );
Więc działa to tak, że wszystko działa :D
P-129874
« 1 »
  Strona 1 z 1