Precedente :: Successivo |
Autore |
Messaggio |
vincenzo2342 Eroe in grazia degli dei
Registrato: 03/06/08 15:58 Messaggi: 124 Residenza: Trino
|
Inviato: 07 Lug 2014 15:23 Oggetto: Programmazione C switch e problema |
|
|
Salve, ho questo problema irrisolvibile (apparentemente).
Vi chiedo Perchè non funziona.
Il programma chiede di inserire N nome in rubrica (N=2 per comodità).
li inserisco (in run-time) e vedo che premendo R per ricercare un nome, quello IGNORA LA FUNZIONE FGETS (ho provato anche con GETS).
Incredibile!
Codice: |
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define N 2
#define M 50
int main()
{
char rubrica [N][M];
char t[M];
int i,trovato;
char comando;
printf("Riempi la rubrica...\n");
for(i=0;i<N;i++)
{
gets(rubrica[i]);
}
printf("hai inserito: %s\n%s", rubrica[0],rubrica[1]);
printf("Inserisci il comando R/S/U: \n");
comando = getchar();
while(tolower(comando)!='u')
{
switch(tolower(comando))
{
case 's':
for(i=0;i<N;i++)
{
puts(rubrica[i]);
}
printf("\n");
break;
case 'r':
printf("Nome? ");
//gets(t);
printf("\nDigita un maginifico nome: ");
fgets(t, M, stdin);
printf("\nNome digitato.");
trovato=0;
for(i=0;i<N && trovato==0; i++)
{
if (strcmp(t,rubrica[i])==0)
{
printf("\n trovato...");
trovato=1;
}
}
if(trovato==0)
{
printf("\n non trovato");
}
break;
default:
printf("\n COMANDO ERRATO ");
}
scanf("%c",&comando);
}
return 0;
}
|
Grazie a chi troverà questo grosso bug..! |
|
Top |
|
|
GG4Core Mortale devoto
Registrato: 02/07/15 16:11 Messaggi: 11
|
Inviato: 04 Lug 2015 16:16 Oggetto: |
|
|
sono un nababbo confronto a te però ho notato che rubrica è una matrice, quindi sei sicuro che vada bene,questo codice?
for(i=0;i<N;i++)
{
gets(rubrica[i]);
} |
|
Top |
|
|
SverX Supervisor Macchinisti
Registrato: 25/03/02 11:16 Messaggi: 11568 Residenza: Tokelau
|
Inviato: 06 Lug 2015 10:42 Oggetto: |
|
|
se mescoli gets() e getchar() avrai sempre casini.
usa fflush() prima della getchar. |
|
Top |
|
|
|
|
Non puoi inserire nuovi argomenti Non puoi rispondere a nessun argomento Non puoi modificare i tuoi messaggi Non puoi cancellare i tuoi messaggi Non puoi votare nei sondaggi
|
|