Mireczki, mam problem z #cpp Mianowicie chcę zrobić coś takiego
char zmienna; std::cin >> zmienna; switch(zmienna) {...} tyle, że ja oczekuję koniecznie jednego znaku(np. s), a ktoś może wprowadzić sss i pętla wykona się trzy razy. Jak temu zapobiec? Robienie z chara tablicy zaalokowanej przykładowo na 100 odpada, bo ktoś może wprowadzić 101 znaków, a poza tym to niezbyt profesjonalne. Myślałem o zrobieniu zmiennej stringiem i by dostać się do pierwszego elementu za pomocą zmienna.at(1)
@dodzik: Niestety nie zrobisz tego używając standardowych narzędzi, polecam rozejrzeć się za jakąś biblioteką, ale przykładu Ci niestety nie podam, bo nigdy nie potrzebowałem : /. Jeśli jesteś skazany na bibliotekę standardową, trochę pomóc może cin.getchar(), ale wbrew pozorom tylko trochę..
@dodzik: lel xD jak wczytujesz cinem do chara to z bufora bierzesz 1 znak tylko, fflush czy jakies inne czysczenie bofora i problem rozwiązany. dodaj taka linijke:
fflush(stdin);
przed switchem i po problemie, zabawa ze stringami nie jest tu potrzebna
Mianowicie chcę zrobić coś takiego
char zmienna;std::cin >> zmienna;
switch(zmienna) {...}
tyle, że ja oczekuję koniecznie jednego znaku(np. s), a ktoś może wprowadzić sss i pętla wykona się trzy razy. Jak temu zapobiec? Robienie z chara tablicy zaalokowanej przykładowo na 100 odpada, bo ktoś może wprowadzić 101 znaków, a poza tym to niezbyt profesjonalne. Myślałem o zrobieniu zmiennej stringiem i by dostać się do pierwszego elementu za pomocą zmienna.at(1)
#naukaprogramowania
Jeśli jesteś skazany na bibliotekę standardową, trochę pomóc może
cin.getchar(), ale wbrew pozorom tylko trochę..@dodzik: chyba .at(0)
ja bym czytał stringa i się nie bawił w jakieś wymyślne rozwiązania
Komentarz usunięty przez autora
@psychob: cin.get() też ciągnie całe wiersze, ale problem już rozwiązany
dodaj taka linijke:
przed switchem i po problemie, zabawa ze stringami nie jest tu potrzebna