Zapisywanie znaków ze spacjami do struktury.

0

Witam, mam pewien problem mianowicie ten kod działa :

	char str[11];
 	printf("Podaj tekst\n");
	     fflush(stdout);
	scanf("%10[0-9a-zA-Z]", str);
	printf("%s", str); 

chciałem zrobić analogicznie zapisywanie do struktury

  printf("podaj isbn\n");
	 fflush(stdout);
	 scanf("%d", &ksiazka[n-1].isbn);



	 printf("podaj tyt\n");
	 	 fflush(stdout);
	 	 scanf("%20[0-9a-zA-Z ]", ksiazka[n-1].tytul);

	 printf("podaj autor_id\n");
	 fflush(stdout);
	 scanf("%d", &ksiazka[n-1].autor_id);

	 printf("podaj dostawca_id\n");
	 fflush(stdout);
	 scanf("%d", &ksiazka[n-1].dostawca_id);

	 printf("podaj rok_wydania\n");
	 fflush(stdout);
	 scanf("%d", &ksiazka[n-1].rok_wydania);

	 printf("podaj gatunek\n");
	 fflush(stdout);
	 scanf("%s", ksiazka[n-1].gatunek);


	 printf("podaj ilosc_szt\n");
	 fflush(stdout);
	 scanf("%d", &ksiazka[n-1].ilosc_szt);

	 printf("podaj cene\n");
	 fflush(stdout);
	 scanf("%d", &ksiazka[n-1].cena); 

i definicja struktury

struct ksiazki {
int isbn;
char tytul[20];
int autor_id;
int dostawca_id;
int rok_wydania;
char gatunek[20];
int ilosc_szt;
int cena;
};
typedef struct ksiazki Ksiazka; 

no i gdy program jest odpalony to jakby ignoruje możliwość wpisania tytułu i od razu przeskakuje do autor_id, pyta o tytuł ale nie daje już możliwości wpisania, poniżej fragment skopiowany z konsoli

podaj isbn
58
podaj tyt
podaj autor_id
 
0

Nie jestem specem of C++ (w sumie to go nie umiem) ale przypadkiem scanf jako drugi argument nie przyjmuje wskaźnika? W sensie czemu nie masz znaku & tam gdzie pobierasz tytuł?

PS: to tylko luźna sugestia, nie znam się :D

0
artisan napisał(a):
	 printf("podaj tyt\n");
	 	 fflush(stdout);
	 	 scanf("%20[0-9a-zA-Z ]", ksiazka[n-1].tytul);

Zjadłeś 's' w formacie.

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