Ora ho un altro problema: quando chiamo la funzione "Input" più di una volta, il contenuto della stringa "titolo" non viene inizializzato, ma continua a contenere i dati della lettura precedente.
Esempio di output
1231;via col vento;Victor Fleming
Titolo:via col vento
2323;Il Signore degli Anelli - La Compagnia dell'Anello;Peter Jackson
Titolo:Il Signore degli Anelli - La Compagnia dell'Anello
1231;via col vento;Victor Fleming
Titolo:via col ventogli Anelli - La Compagnia dell'Anello
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define DIM_TITOLO 100
#define DIM_regista 100
void input(int *numero, char *titolo, char *regista);
int main()
{
unsigned int num;
char titolo[DIM_TITOLO] = "";
char regista[DIM_regista] = "";
input(&num, titolo, regista);
while(num != 0)
{
printf("Titolo:%s\n", titolo);
input(&num, titolo, regista);
}
}
void input(int *numero, char *titolo, char *regista)
{
while(scanf("%d%*c", numero) != 1 || *numero < 0)
{
puts("ERRORE");
scanf("%*[^\n]");
scanf("%*c");
}
if(*numero != 0)
{
char temp[DIM_TITOLO+DIM_regista] = "";
strcpy(titolo, "");
strcpy(regista, "");
fgets(temp, DIM_TITOLO+DIM_regista, stdin);
strcpy(regista, strchr(temp, ';')+1);
regista[strlen(regista)-1] = '\0';
strncpy(titolo, temp, strlen(temp) - strlen(regista) - 2);
}
}