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++ - fopen  aiuto! :)
Forum - C/C++ - fopen aiuto! :)

Avatar
feddur (Normal User)
Pro


Messaggi: 200
Iscritto: 06/03/2008

Segnala al moderatore
Postato alle 2:28
Venerdì, 29/05/2009
Salve, ho cominciato questo programma:
Codice sorgente - presumibilmente C++

  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. int ok;
  5. struct paziente
  6.    { char nome[20];
  7.      char cognome[20];
  8.      int numero;
  9.    };
  10.  
  11. main()
  12.   { struct paziente dati;    
  13.   printf("*** Iserire dati paziente ***\n\n");  
  14.  
  15.   printf("Cognome: ");
  16.   scanf("%s",dati.cognome);
  17.    
  18.   printf("Nome:\t ");
  19.   scanf("%s",dati.nome);
  20.    
  21.   printf("Numero:\t ");
  22.   scanf("%d",&dati.numero);
  23.  
  24.   printf("\nPremi 1 per confermare i dati, 0 per annullare:\n");
  25.   scanf("%d",&ok);
  26.       if (ok == 1)
  27.       {      
  28.      
  29.         FILE *fp;
  30.         fp = fopen (dati.cognome , "w+");
  31.         fprintf(fp, "Cognome: %s\n", dati.cognome);
  32.         fprintf(fp, "Nome\t:%s\n", dati.nome);  
  33.         fprintf(fp, "Numero\t%d\n", dati.numero);
  34.        
  35.       printf("Paziente inserito nel database\n");
  36.      
  37.       }
  38.       else
  39.       {
  40.       printf("Annullato\n");
  41.       }
  42.  
  43.   system("PAUSE");
  44.   return 0;
  45.  
  46.   }



vorrei che quando salva il file, venga salvato in un cartella con il nome del cognome e nome del paziente, in modo da avere una cartella per ogni singolo paziente.
Come posso fare?
Grazie.

PM Quote
Avatar
gio97 (Ex-Member)
Guru


Messaggi: 715
Iscritto: 25/04/2009

Segnala al moderatore
Postato alle 7:07
Venerdì, 29/05/2009
potresti creare con il comando system la cartella e poi con lo stesso comando entrarci.
ma a cosa ti serve avere i pazienti suddivisi? in fondo in ogni cartella c'è dentro un file: il numero degli oggetti che vedi è lo stesso.


"Ditemi, sapete chi è... il ciaffo?"
"Questo essere trae origine da un arcaico lamer.
Tanto tempo fa, in una chat oscena oscena, il lamer f1192 si lamentava di non poter inserire le graffe, perché non aveva... IL CIAFFO"(L'uomo che sussurrava ai ciaffi)
PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 9:06
Venerdì, 29/05/2009
devi usare l'api CreateDirectory, cerca su msdn il suo manuale

in breve dovrebbe essere:

CreateDirectory(nome, security_attributes) ma il secondo parametro può anche essere NULL e la dir creata prende gli attributi di sicurezza di default


"There's no point in being exact about something if you don't even know what you're talking about."

JOHN VON NEUMANN


Siamo italiani NO??
Allora scriviamo in ITALIANO!!!!
PM Quote
Avatar
feddur (Normal User)
Pro


Messaggi: 200
Iscritto: 06/03/2008

Segnala al moderatore
Postato alle 11:26
Venerdì, 29/05/2009
Mi serve perchè per ogni paziente poi dovrei mettere altri file (il programma ancora non è finito).

Ho cercato CreateDirectory(nome, security_attributes) ma non riusco a farlo funzionare.. o meglio: non riesco a dichiare le api.

Codice sorgente - presumibilmente C++

  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. int ok;
  5. struct paziente
  6.    { char nome[20];
  7.      char cognome[20];
  8.      int numero;
  9.    };
  10.  
  11. main()
  12.   { struct paziente dati;    
  13.   printf("*** Iserire dati paziente ***\n\n");  
  14.  
  15.   printf("Cognome: ");
  16.   scanf("%s",dati.cognome);
  17.    
  18.   printf("Nome:\t ");
  19.   scanf("%s",dati.nome);
  20.    
  21.   printf("Numero:\t ");
  22.   scanf("%d",&dati.numero);
  23.  
  24.   printf("\nPremi 1 per confermare i dati, 0 per annullare:\n");
  25.   scanf("%d",&ok);
  26.       if (ok == 1)
  27.       {      
  28.      
  29.         FILE *fp;
  30.         CreateDirectory(dati.cognome, NULL);
  31.         fp = fopen (dati.cognome , "w+");
  32.         fprintf(fp, "Cognome: %s\n", dati.cognome);
  33.         fprintf(fp, "Nome\t:%s\n", dati.nome);  
  34.         fprintf(fp, "Numero\t%d\n", dati.numero);
  35.        
  36.       printf("Paziente inserito nel database\n");
  37.      
  38.       }
  39.       else
  40.       {
  41.       printf("Annullato\n");
  42.       }
  43.  
  44.   system("PAUSE");
  45.   return 0;
  46.  
  47.   }


PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 11:55
Venerdì, 29/05/2009
aggiungi in alto
Codice sorgente - presumibilmente Plain Text

  1. #include<windows.h>



"There's no point in being exact about something if you don't even know what you're talking about."

JOHN VON NEUMANN


Siamo italiani NO??
Allora scriviamo in ITALIANO!!!!
PM Quote
Avatar
feddur (Normal User)
Pro


Messaggi: 200
Iscritto: 06/03/2008

Segnala al moderatore
Postato alle 12:10
Venerdì, 29/05/2009
Grazie :)
un'altra domanda.. come faccio poi a metterci il file dentro?

PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 14:37
Venerdì, 29/05/2009
scusa, crea il file direttamente nella cartella che hai creato
se per qualsiasi ragione non puoi farlo allora usa la CopyFile(vedi msdn)


"There's no point in being exact about something if you don't even know what you're talking about."

JOHN VON NEUMANN


Siamo italiani NO??
Allora scriviamo in ITALIANO!!!!
PM Quote