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

std::cin - sprawdzanie co się pod nim kryje

Ostatnio zmodyfikowano 2017-04-01 12:37
Autor Wiadomość
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.


P-159656
carlosmay
» 2017-04-01 09:28:46
http://en.cppreference.com/w​/cpp/string/basic_string
Metody begin i end zwracają iterator (abstrakcyjny wskaźnik).
auto - automatyczna dedukcja typu na podstawie otrzymanych danych.
(*it) - gwiazdka (operator dereferencji) wyłuskuje dane spod wskaźnika (iterator).
P-159658
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).
P-159660
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).
P-159661
Monika90
» 2017-04-01 12:37:55
C/C++
getline( iss >> tab[ 0 ], tab[ 1 ] );
C/C++
iss >> tab[ 0 ];
getline( iss, tab[ 1 ] );
Obydwa zapisy znaczą to samo (choć nie zawsze tak będzie). Ten drugi jest lepszy.
P-159664
1 2 « 3 »
Poprzednia strona Strona 3 z 3