PDA

Visualizza la versione completa : [C] uscire dal programma


mclele
05-04-2008, 20:17
ciao a tutti...voglio fare un programma che mi stampi determinate frasi su un txt e sto quindi facendo delle prove, funziona tutto correttamente, ma il programma continua all'infinito, vorrei invece che digitando la parola "fine" il programma termini, come posso fare?


#include <stdio.h>
int main()

{

char tm[10];
char fine;
char rng[20];

printf("\nDigita una parola: ");
scanf("%s", &tm);
printf("\nHai scelto la parola: %s\n", tm);

printf("\nDigita una parola: ");
scanf("%s", &rng);

printf("\nHai scelto la parola: %s\n", rng);

FILE *fp;

fp = fopen("parola.txt", "a+");
fprintf(fp, "la prima parola immessa : %s\n la seconda parola immessa : %s ", rng, tm);
fclose(fp);

if(rng!=fine)

{

inizio:

printf("\nDigita una parola oppure 'fine' per finire: ");
scanf("%s", &rng);

printf("\nHai scelto la parola: %s\n", rng);

FILE *fp;

fp = fopen("parola.txt", "a+");
fprintf(fp, "la prima parola immessa : %s\n la seconda parola immessa : %s ", rng, tm);
fclose(fp);

}
goto inizio;
}

mondobimbi
06-04-2008, 11:19
ciao,
innanzitutto confronti un puntatore a char con un char, un buon compilatore ti dovrebbe segnalare l'errore.
Poi non esegui il controllo if quando fai il salto incondizionato al label inizia:, che devi posizionare prima dell'if.
Comunque studiati il costrutto while e prova ad applicarlo in sostituzione del salto incondizionato.



#include <stdio.h>
int main()

{

char tm[10];
char fine;
char rng[20];

printf("\nDigita una parola: ");
scanf("%s", &tm);
printf("\nHai scelto la parola: %s\n", tm);

printf("\nDigita una parola: ");
scanf("%s", &rng);

printf("\nHai scelto la parola: %s\n", rng);

FILE *fp;

fp = fopen("parola.txt", "a+");
fprintf(fp, "la prima parola immessa : %s\n la seconda parola immessa : %s ", rng, tm);
fclose(fp);

inizio:
if(strcmp(rng,"fine"))

{


printf("\nDigita una parola oppure 'fine' per finire: ");
scanf("%s", &rng);

printf("\nHai scelto la parola: %s\n", rng);

FILE *fp;

fp = fopen("parola.txt", "a+");
fprintf(fp, "la prima parola immessa : %s\n la seconda parola immessa : %s ", rng, tm);
fclose(fp);

goto inizio;
}
}

spaghetto
06-04-2008, 11:38
Normalmente in C si evitano i Goto...si usano i cicli come giustamente ti stato gi suggerito...

mclele
06-04-2008, 14:06
:sbav: grazie mille

Loading