PDA

Visualizza la versione completa : C - If-else - confronto caratteri


krash
23-03-2012, 13:50
dov'è l'errore nel codice qui sotto? non riesco a fare funzionare il blocco if-else :incupito:


#include <stdio.h>

savefile();

main()
{
...
...
char sf;
printf ("Vuoi salvare i risultati in un file (s/n)?");
scanf ("%c\n", &sf);
if ( sf != 's') return(0);
else savefile ();
}

savefile ()
{
...;
}

ramy89
23-03-2012, 14:26
void savefile(void);

oregon
23-03-2012, 14:30
scanf ("%c", &sf);

krash
23-03-2012, 15:11
purtroppo viene lanciata la funzione savefile con qualsiasi lettera

@ramy89 la funzione savefile è in realtà la seguente, non l'avevo riportata intera per comodità


void savefile (long double roe,long double rn,long double n,long double ro,long double a,long double of,long double rocore,long double v,long double p,long double roi,long double rn_ro,long double acore,long double ros,long double rot,long double ind,long double on)


edit: se tolgo "\n" non mi fa digitare la lettera, salva il file e termina il programma

oregon
23-03-2012, 15:36
Originariamente inviato da krash

edit: se tolgo "\n" non mi fa digitare la lettera, salva il file e termina il programma

Perché nei puntini

...

che hai inserito prima al posto del codice (che non hai mostrato) c'è qualche altra scanf dopo la quale non svuoti il buffer di input (così come non lo fai dopo questa scanf).

Provvedi a svuotare il buffer dopo ogni scanf con un ciclo while e la getchar come abbiamo detto milioni di volte in questo forum.

krash
23-03-2012, 15:56
potresti indicarmi una guida semplice per lo svuotamento del buffer

grazie

oregon
23-03-2012, 15:58
Una "guida"? Mica esiste una "guida" per ogni cosa.

Cerca in questo forum ... se n'è parlato tante volte.

ramy89
23-03-2012, 19:11
Facevi prima a postare il codice intero, bastava un copia-incolla.

Loading