non funziona scanf...

Pubblicità

martìn91

Utente Attivo
Messaggi
14
Reazioni
0
Punteggio
25
Ciao, facendo questo programmino, abbozzato per il momento, mi sono accorto che aggiungendo un nuovo contatto con nome-cognome uguali, con il codice scritto qua sotto non mi funziona la scanf indicata nel case 1 con una frecciolina (------>)... la salta proprio.
Perfavore, ditemi dove sto sbagliando.... :) Grazie!:help:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 3

typedef struct nomi
{
char cognome[20];
char nome[20];
char fisso[15];
char mobile[15];
} Nomi;

int main()
{
Nomi rubrica[MAX];
int n=0, i, opz;
char sovrascrivi = 'r';//inizializzazione a 'r' da ricordare durante l'elaborazione di questa variabile char
printf("\t\tRubrica\n");
do
{
puts("\nPremere il NUMERO:\n1 per aggiungere una nuova voce\n2 per visualizzare l'intera rubrica\n0 per terminare il programma\n");
scanf("%d",&opz);

switch(opz)
{
case 1:
{
if(n>=MAX)
{
puts("Rubrica piena! :-(");
break;
}

puts("Inserire il cognome del nuovo contatto: ");
scanf("%s", rubrica[n].cognome);
puts("Inserire il nome del nuovo contatto: ");
scanf("%s", rubrica[n].nome);

for(i=0;i<n;i++) //verifica univocità
{
if(strcmp(rubrica[n].cognome,rubrica.cognome)==0 && strcmp(rubrica[n].nome,rubrica.nome)==0)
{
puts("Il nome del contatto è già esistente, vuoi sovrascriverlo? [y/n]"); //si desidera sovrascrivere o no?

scanf("%c", &sovrascrivi);

if((sovrascrivi!='y' && sovrascrivi!='n') || sovrascrivi =='r')
{

while(sovrascrivi=='y'|| sovrascrivi=='n')
{
puts("*****! Vuoi sovrascriverlo o no!?!? Premi [y/n]");
-----------> scanf("%c",&sovrascrivi);
}
}

if(sovrascrivi == 'n')
{
puts("Inserisci un nuovo contatto dal menu' (premendo 1) con nome diverso da quelli gia' memorizzati");
break;
}

if(sovrascrivi == 'y')
{
continue;
}

}
}

puts("Inserire il numero di telefono fisso del nuovo contatto: ");
scanf("%s", rubrica[n].fisso);
puts("Inserire il numero di telefono mobile del nuovo contatto: ");
scanf("%s", rubrica[n].mobile);
puts("\nComplimenti, hai appena inserito con successo:");
printf("%s %s\nTel:%s\nCell:%s\n", rubrica[n].cognome, rubrica[n].nome, rubrica[n].fisso, rubrica[n].mobile);
n++;
}
break;

case 2:
{
printf("Rubrica:\n");
for(i=0;i<=(n-1);i++)
{
printf("%s %s\tTel:%15s Cell:%15s\n", rubrica.cognome, rubrica.nome, rubrica.fisso, rubrica.mobile);
}
}
break;

case 0:
{
puts("Arrivederci!\n");
return 0;
}
break;

default:
{
puts("Comando non trovato! :-( Riprovare...");
}
break;
}
}

while(opz!=0);
return 0;
}
 
Pubblicità
Pubblicità
Indietro
Top