Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    10

    [C] uscire dal programma

    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. #2
    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.

    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);
    
    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;
    }
    }

  3. #3
    Normalmente in C si evitano i Goto...si usano i cicli come giustamente ti è stato già suggerito...

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    10
    grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.