[C++] Rozróżnienie liczby od znaku.
Ostatnio zmodyfikowano 2014-03-17 15:11
Kuaczor Temat założony przez niniejszego użytkownika |
[C++] Rozróżnienie liczby od znaku. » 2014-03-16 22:22:06 Mam takie zadanko, użytkownik podaje szerokość i wysokość mapy po czym podaje typy poszczególnych pól ( litery lub kropki ) np:
Wejście użytkownika
5 5 . . . . . . . . . . . . . . . c c c c c c c c c c
Wyjście programu
. . . . . . . . . . . . . . . c c c c c c c c c c
Tę samą mapę może zrobić tak:
Wejście użytkownika
5 5 10 . ( 10 kolejnych pól to pola typu kropka ) . . . . . ( 5 pól typu kropka ) 10 c ( 10 kolejnych pól to pola typu 'c')
Wyjście programu
. . . . . . . . . . . . . . . c c c c c c c c c c
O ile z pierwszym sposobem nie mam problemów to nie za bardzo wiem jak zrealizować drugi, jak program ma rozróżniać czy użytkownik podał liczbę czy literę?
|
|
Monika90 |
» 2014-03-17 00:22:01 Wczytujesz sobie jeden znak sprawdzasz czy to cyfra i jeżeli tak, to wstawiasz z powrotem do strumienia i wczytujesz liczbę if( std::isdigit( ch ) ) { in.unget(); in >> n; }
|
|
Kuaczor Temat założony przez niniejszego użytkownika |
» 2014-03-17 11:45:48 Z std moge uzywac tylko cin i cout ;) |
|
michal11 |
» 2014-03-17 12:25:56 No to sprawdzaj po kodach ASCII. |
|
Monika90 |
» 2014-03-17 13:13:05 Nie sprawdzaj kodów ASCII, nie wszystkie systemy używają ASCII. Zamiast isdigit można tak if( ch >= '0' && ch <= '9' ) { cin.unget(); cin >> n; }
Z std moge uzywac tylko cin i cout ;) |
A tak w ogóle, to dlaczego? |
|
michal11 |
» 2014-03-17 14:07:26 W sumie racja sposób z cyfrą w ' ' jest lepszy. |
|
Kuaczor Temat założony przez niniejszego użytkownika |
» 2014-03-17 15:11:59 Takie wytyczne. Dzięki za pomoc :) |
|
« 1 » |