std::cin - sprawdzanie co się pod nim kryje
Ostatnio zmodyfikowano 2017-04-01 12:37
Qabrix Temat założony przez niniejszego użytkownika |
» 2017-04-01 06:29:19 Czy mógłbyś jeszcze tylko mi wytłumaczyć mechanizm czyszczenia spacji? Albo przynajmniej zasugerować, czego powinienem poszukać w internecie (nie wiem jak działa .begin(), .end(), auto, (* it) przy isspace. I przy okazji w sumie getline getline( iss >> tab[ 0 ], tab[ 1 ] ); Czemu nie mogę zapisać np tak? getline( iss >> tab[ 0 ], tab[ 1 ], tab[ 2 ] ); , gdybym chciał zapisać 3 elementy. |
|
carlosmay |
» 2017-04-01 09:28:46 |
|
j23 |
» 2017-04-01 10:40:22 Czemu nie mogę zapisać np tak? |
Dziwne pytanie. Nie możesz tak zapisać, bo funkcja przyjmuje trzy parametry o określonych znaczeniach - strumień, string, delimiter (opcjonalnie). |
|
Qabrix Temat założony przez niniejszego użytkownika |
» 2017-04-01 10:49:28 Dzięki carlosmay, już wszystko jasne. A co do tego getline w sumie nie do końca zrozumiałem ten zapis getline( iss >> tab[ 0 ], tab[ 1 ] ); bo normalnie (przy podstawach) uczyłem się, że struktura getline wygląda tak getline( std::cin, zmienna ); więc do końca nie wiem w jaki sposób ten nowy zapis działa (w jaki sposób wykrywa spację i wszystko po niej zapisuje do drugiego elementu tablicy, oraz dlaczego przy takim zapisie: getline( iss >> tab[ 0 ], tab[ 2 ] ); zapisze wszystko po spacji do trzeciego elementu tablicy, a drugi pominie). |
|
Monika90 |
» 2017-04-01 12:37:55 getline( iss >> tab[ 0 ], tab[ 1 ] );
iss >> tab[ 0 ]; getline( iss, tab[ 1 ] );
Obydwa zapisy znaczą to samo (choć nie zawsze tak będzie). Ten drugi jest lepszy. |
|
1 2 « 3 » |