Apertura file,problema ciclaggio.

di Anonimizzato18590 il
2 risposte
Ciao a tutti,sto tentando di creare un programma che apra in scrittura un file di testo,in sostanza ci sono riuscito,tranne un piccolo cavillo,nella funzione main,quando avvio un ciclo per chiedere se dopo la prima stringa se ne vuole creare un altra e scriverla nel file,il programma salta il comando di salvataggio della stringa(gets(s)per intenderci) e avvia direttamente il ciclo che chiede se continuare a inserire,quindi ripete la stessa identica cosa se la scelta è di nuovo positiva,questo fin quando il controllo non riceve una risposta negativa se continuare o meno...qual'è il problema secondo voi? il codice di tutto il programma è questo,comprende main,sottofunzione per la lista e sottofunzione di stampa.

P.s., grazie in anticipo.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define max 20

struct node{
       char a[max];
       struct node *next;
       };
       
struct node *inserisci_stringa(struct node *nuova, char s[]);

void stampa_stringa(struct node *nuova,FILE *fp);




struct node *inserisci_stringa(struct node *nuova,char s[]){
struct node *new_node;


new_node= malloc(sizeof(struct node));
strcpy(new_node->a,s);
new_node->next=nuova;
nuova=new_node;

return nuova;

}

void stampa_stringa(struct node *nuova,FILE *fp){
       int i;
       i=1;
       for(;nuova!=NULL;nuova=nuova->next,i++){
       fprintf(fp,"[%d]%s\n",i,nuova);
       }
       }




int main(){
    
    FILE *fp;
    char s[max];
    int d;
    struct node *nuova=NULL;
    int operazione;
    
    fp=fopen("Testo.txt","w");
    if(fp!=NULL){
            
            
    for(d=1;d!=0;){
    printf("Inserisci una stringa,massimo 20 caratteri\n\n");
    gets(s);
    nuova=inserisci_stringa(nuova,s); 
    printf("Inserisci altra stringa?\n");
    scanf("%d",&d);
    
}        
     

    stampa_stringa(nuova,fp);
}

fclose(fp);
    
                   system("pause\n");
                   return 0;
                   }  

2 Risposte

  • Il solito problema di svuotamento del buffer di input ... Ci sono tante discussioni sull'argomento...
  • Ok grazie !

    Inviato dal mio SM-G530FZ utilizzando Tapatalk
Devi accedere o registrarti per scrivere nel forum
2 risposte