problem ze spacją w strukturze

0

Znalazłem pare rozwiązań mojego problemu ale żaden nie zadziałał w moim przypadku. probowałem cin.ignore,getline i nic nie działa.
Kiedy w którymś ze stringow wrzuce spacje przenosi mi zmienne do następnej zmiennej i program się rozpada.

#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>

using namespace std;
struct ksiazka
{ 
    string tytul;
    string imie;
    string nazwisko;
    string wydawnictwo;
    string gatunek;
    int rok_wydania;
    ksiazka * next;    
};
ksiazka * poczatek = NULL;
const char * nazwa;
void dodaj()
{
     ksiazka * nowa = new ksiazka;
     cout << "Wpisz tytul ksiazki ";
     cin >> nowa->tytul;
     cout << "Wpisz imie autora ";
     cin >> nowa->imie;
     cout << "Wpisz nazwisko autora";
     cin >> nowa->nazwisko;
     cout << "Podaj nazwe wydawnictwa";
     cin >> nowa->wydawnictwo;
     cout << "Podaj gatunek ksiazki";
     cin >> nowa->gatunek;
     cout << "podaj rok wydania ";
     cin >> nowa->rok_wydania;
     nowa->next = NULL;
if(poczatek == NULL)
{
    poczatek = nowa;        
}else
{
     ksiazka * szukaj = poczatek;
     while(szukaj->next != NULL)
     {
            szukaj = szukaj->next;
     }
     szukaj->next = nowa;
}     
}
1

getline(cin, nowa->tytul);

0

teraz w ogóle pomija zapytanie o tytul i przechodzi Od razu do nastepnego zapytania...

1

to znaczy, że miałeś jakieś śmieci na wejściu zawierające koniec linii.
cin.sync() wyczyści wszystkie dane z wejścia, tak by można było wczytać jedynie nowe dane, które użytkownik wpisze później.

0

Dziękuje, teraz wszystko śmiga:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1