Problem ze spacjami (C++)

0

Piszę prostą bazę danych i doświadczyłem pewnego niezwykle irytującego problemu.
Na rekord składają się m.in:

char tytul[35];
char kompozytor[30];

Samo wczytywanie danych wyglada następująco:

printf("tytul opery: "); 
scanf("%35s",r->tytul); 
printf("kompozytor: "); 
scanf("%30s",r->kompozytor);

I gdy w programie podaje tytuł oddzielony spacją (np składający się z dwóch wyrazów) to drugi wyraz tytułu automatycznie wskakuje mi na miejsce przeznaczone na kompozytora.
Nie wiem jak się tego pozbyć. Czy moglibyście pomóc?
Pozdr.


0

Ja bym to troche "utrudnił" i wczytywał znak po znaku - masz możliwość na <ort>bieŻąco (Boże, widzisz takie błędy i nie grzmisz) </ort>kokntroli wprowadzanych danych i możesz sie zabezpieczyć przed wprowadzaniem np. cyfr

Co do

scanf()
  • jest to funkcja podobna w pewnym sensie do printf()
</ul>
tzn. jak chcesz wypisać dwa stringi to piszesz <code class="cpp">printf("%s %s",s1,s2)

tak samo jest ze

scanf()

tzn. znak spacji rozdziela tekst wprowadzany przez usera na dwa stringi (jak wpiszesz trzy wyrazy to będą trzy)

Użyj powyższego sposobu lub poczytaj o funkcji

gets()
wczytuje cały string aż do znaku o kodzie \0</li> </ul>

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