Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - [C] Come creare il comando exit in un programma a console
Forum - C/C++ - [C] Come creare il comando exit in un programma a console

Avatar
Marte111 (Normal User)
Rookie


Messaggi: 33
Iscritto: 12/02/2014

Segnala al moderatore
Postato alle 12:49
Domenica, 27/04/2014
Salve, vorrei sapere per far uscire in un ciclo di inserimento senza che ogni volta faccio ripetere :

input:> hai finito premi  "S" per si , premi  "N" per no.

e vorrei in modo che uno digita input:> Exit
ed esco .

ora il programma non ho ancora scritto ma se mi date un consiglio come fare lo scrivo.

uso sistema: Windows 7 a 64bit.
compilatore: TDM-GCC-32
e mi son fatto un Winux che compilo tutto da linea di comando e uso notepad++ per scrivere il codice,

e mi torna benissimo.

vi ringrazio molto.

PM Quote
Avatar
Marte111 (Normal User)
Rookie


Messaggi: 33
Iscritto: 12/02/2014

Segnala al moderatore
Postato alle 13:17
Domenica, 27/04/2014
esempio in questo codice che ho scritto tramite il libro di un corso online su un sito di un professore..

Codice sorgente - presumibilmente Delphi

  1. #include <stdio.h>
  2. int main()
  3. {
  4. char nome[256], cognome[256], tel[256];
  5. char finito;
  6. char nomefile[]="rubrica.txt";
  7. FILE *Fp1;
  8. // Apro il file in modalita' append testo
  9. Fp1 = fopen(nomefile, "a");
  10. if (Fp1==NULL){
  11. printf("File %s not found\n", nomefile);
  12. }
  13. printf("Il puntatore (*Fp) al fil e %s e' %d\n\n", nomefile, Fp1);
  14. // Salvo nel file i dati delle persone
  15. finito='n';
  16. while((finito=='n') || (finito=='N'))
  17. {
  18. printf("Inserire Nome: "); scanf("%s", nome);
  19. printf("Inserire Cognome: "); scanf("%s", cognome);
  20. printf("Inserire TEL:  "); scanf("%s", tel);
  21. fprintf(Fp1, "%s\t%s\t%s\n", nome, cognome, tel);
  22. fflush(stdin);
  23. printf("Finito? S(i) oppure N(o) --> ");
  24. scanf("%c", &finito);
  25. }
  26. close(Fp1);
  27. Fp1 = fopen(nomefile, "r");
  28. if(Fp1==NULL)
  29.         {
  30.                 printf("File %s not found \n", nomefile);
  31.                
  32.         }
  33.    printf("\n\n\n Rubrica: \n");
  34.    while(fscanf(Fp1, "%s\t%s\t%s\n", nome, cognome, tel)== 3)
  35.    {
  36.      printf("%s %s, %s \n ", nome,cognome,tel);
  37.    }
  38.  }



come faccio ad fare quello che vorrei io , invece di premere "S" o "N".?

PM Quote
Avatar
torn24 (Normal User)
Pro


Messaggi: 138
Iscritto: 04/01/2008

Segnala al moderatore
Postato alle 8:43
Martedì, 29/04/2014
Ciao , se vuoi terminare il ciclo digitando "exit" , prima dovrai acquisire una stringa e non un carattere , poi confrontare la stringa tramite la funzione strcmp()



Codice sorgente - presumibilmente Plain Text

  1. while(strcmp(stringa,"exit")!=0)
  2. {
  3.     printf("Inserire Nome: "); scanf("%s", nome);
  4.     printf("Inserire Cognome: "); scanf("%s", cognome);
  5.     printf("Inserire TEL:  "); scanf("%s", tel);
  6.     fprintf(Fp1, "%s\t%s\t%s\n", nome, cognome, tel);
  7.     fflush(stdin);
  8.     printf("digitare "exit" per terminare altro carattere per continuare   --> ");
  9.     scanf("%s", stringa);
  10. }
  11.  
  12.  
  13.  a mio avviso è più conveniente  cosi'  , basta premere invio per continuare , più rapido :)
  14.  
  15. while((finito!='n') && (finito!='N'))
  16. {
  17.     printf("Inserire Nome: "); scanf("%s", nome);
  18.     printf("Inserire Cognome: "); scanf("%s", cognome);
  19.     printf("Inserire TEL:  "); scanf("%s", tel);
  20.     fprintf(Fp1, "%s\t%s\t%s\n", nome, cognome, tel);
  21.     fflush(stdin);
  22.     printf("Finito? S(i) oppure N(o) --> ");
  23.    
  24.     finito=getchar();
  25. }



Se si impara dai propri sbagli
non è cosi drammatico  sbagliare !
PM Quote