[C++] Spacja po poleceniu nie wymagającym jej.
Ostatnio zmodyfikowano 2015-04-02 10:04
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: #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( - 1 ); } else if( command == pol[ 1 ] ) { 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? |
|
SeaMonster131 |
» 2015-04-01 17:08:18 getline( std::cin, command, ' ' ); getline() będzie wczytywać dane ze strumienia aż do napotkania spacji. |
|
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... |
|
pekfos |
» 2015-04-01 18:11:57 Czemu nie wczytywać poleceń przez >>? |
|
Brunon3 |
» 2015-04-01 18:13:32 Ten Twój 'interpreter' wczyta tylko jedno polecenie, o to Ci chodzi?
-BD. |
|
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, ' ' || ); Więc działa to tak, że wszystko działa :D |
|
« 1 » |