|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Mar 2007
Messaggi: 42
|
[C] Uscire da if
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?
Codice:
#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;
}
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Per favore togli quel goto, il goto è una bestemmia per la programmazione
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Mar 2007
Messaggi: 42
|
ok censuro il goto
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Hai indentato il codice ? Il goto torna indiscriminatamente ad inizio sempre e comunque. L'errore è lì. Quindi inizio lo devi mettere prima dell'if.
Per risolvere senza il goto bastava un while. Inoltre rng != fine non compara assolutamente le due stringhe. Per confrontare due stringhe in C si usa la funzione strcmp, se ritorna 0 allora le stringhe sono uguali. |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
|
mi piacerebbe sapere chi ti ha insegnato,o su che libro hai letto dell'istruzione goto,su un libro introduttivo alla programmazione non dovrebbe nemmeno essere menzionata(e forse mai),comunque come ti hanno detto,devi riscrivere il programma utilizzando un ciclo while,pensaci
__________________
Khelidan |
|
|
|
|
|
#8 | ||
|
Member
Iscritto dal: Mar 2007
Messaggi: 42
|
Perfetto ho risolto con
Codice:
while(strcmp(rng, "fine")) Quote:
Quote:
|
||
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
|
Quote:
__________________
Khelidan |
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#11 |
|
Member
Iscritto dal: Mar 2007
Messaggi: 42
|
rm -f goto
|
|
|
|
|
|
#12 |
|
Junior Member
Iscritto dal: Aug 2006
Messaggi: 17
|
L'indentazione è una tecnica di scrittura del codice che permette maggiore leggibilità. L'idea di base è utilizzare gli spazi bianchi che chiaramente non sono interpretati o parsati dal compilatore al fine di separare le istruzioni contenute nel programma sorgente. La regola base è la off-side rule ovvero l'anteposizione di una certa quantità di spazi bianchi (spazi o tabulazioni), proporzionale al numero di strutture di controllo o blocchi, prima della funzione presa in esame.
ES. Codice:
for (i = 0; i < j; i++) {
if (a > b)
b = 200;
else
a = 200;
}
Ultima modifica di cionci : 07-04-2008 alle 08:00. Motivo: messo il tag [code][/code] |
|
|
|
|
|
#13 |
|
Member
Iscritto dal: Mar 2007
Messaggi: 42
|
ok grazie mille
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:39.




















