Skocz do zawartości

Wczytywanie Strumieni W C++


Lukasz69

Rekomendowane odpowiedzi

Pisze sobie rozne zadania - natknalem sie na pewien problem. Kod wyglada tak:

char czytaj[200];
    short int ilewierszy, x; 
       cin >> ilewierszy;
    cin.ignore(1,' '); // bez tego w pierwszym przebiegu do tablicy znakow wczytywal sie znak konca
    for(x = 0; x<ilewierszy; x++)
    {
        short int z = 0;
        cin.getline(czytaj,200);
        while(int(czytaj[z]))
        {
            if(int(czytaj[z])>=65&∫(czytaj[z])<=90) ALFABET[czytaj[z]-'A']+=1;
            if(int(czytaj[z])>=97&∫(czytaj[z])<=122) alfabet[czytaj[z]-'a']+=1;
            z++;
        }
    }

 

Bez cin.ignore gdy w ilosciwierszy(licznik ile petla ma sie wykonac) podawalem 1 to cin.getline pobieral znak konca poprzedniej wprowadzanej wartosci(tak przypuszczam). Czy jest inna metoda pobierania danych by nie lapac pozostalosci w buforze odczytu? Czy zawsze przy tego typu kolejnosci operacji trzeba dac cin.ignore w celu pozbycia sie smieci?

Odnośnik do komentarza
Udostępnij na innych stronach

A próbowałeś odczytywać do stringa:

cin >> zmienna;

?

Tak w sumie to dawno nie używałem strumieni, bo są jeszcze odrobinę wolniejsze, a ja głównie zajmuję się algorytmami, a to czego używałem to ograniczało się do przeładowanych w iostream operatorów >> i <<.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...