View Full Version : salvare file in C
Salve a tutti..sono abbastanza nuovo nel mondo della programmazione e quindi se fosse possibile evitare insulti.. :D :D ..volevo sapere come si fa all'interno del sorgente di un programma in C a specificare dove salvare l'eventuale file,...lla creazione non è un problema ma i file che creo durante l'esecuzione del programma finiscono sempre nella directory del programma stesso...e se io li volessi sul desktop??..se qualcuno ha una risposta mi aiuterebbe molto..:-) grazie a tutti e ciao!
Salve a tutti..sono abbastanza nuovo nel mondo della programmazione e quindi se fosse possibile evitare insulti.. :D :DTranquillo .... qui nessuno insulta chi è all'inizio. ;)
..volevo sapere come si fa all'interno del sorgente di un programma in C a specificare dove salvare l'eventuale file,...lla creazione non è un problema ma i file che creo durante l'esecuzione del programma finiscono sempre nella directory del programma stesso...e se io li volessi sul desktop??Innanzitutto suppongo che tu usi la funzione fopen per aprire/creare i file. Ma indipendentemente dalla funzione usata, nulla ti vieta di specificare un path ben preciso:
f = fopen ("C:\\TEMP\\prova.txt", "w");
Se vuoi ottenere "programmaticamente" il percorso di certe cartelle specifiche di Windows (es. il desktop, la directory di Windows, ecc...), allora devi usare delle funzioni specifiche del sistema.
uhm..beh questa risposta mi è molto utile!..grazie..però..io come NOMEFILE ho messo una variabile che è un vettore di caratteri definito dall'utente..così poi il file ha il nome che sceglie chi esegue il programma..:D...(per non dire che per dargli l'estensione giusta concateno il nome dato dall'utente con la stringa ".txt" LOL :D ) ..quindi usando il tuo esempio potrei fare una cosa tipo:
f = fopen ("C:\\TEMP\\NOMEFILE", "w"); dove invece del nome predefinito c'è il nome scelto dall'utente?
f = fopen ("C:\\TEMP\\NOMEFILE", "w"); dove invece del nome predefinito c'è il nome scelto dall'utente?No, quella è una stringa costante ("letterale").
Se vuoi che sia l'utente a specificare il nome del file, puoi fare:
char nomefile[200];
FILE *f;
printf ("Dammi il nome del file: ");
scanf ("%s", nomefile);
f = fopen (nomefile, "w");
no ma appunto...forse sono io che non capisco...come faccio a usare entrambe queste caratteristiche? cioè a chiedere il nome all'utente e a mettere nel codice del programma una directory predefinita diversa da quella dove risiede il programma stesso?..è possibile? prometto che poi vado a fare pratica :)
no ma appunto...forse sono io che non capisco...come faccio a usare entrambe queste caratteristiche? cioè a chiedere il nome all'utente e a mettere nel codice del programma una directory predefinita diversa da quella dove risiede il programma stesso?..è possibile? prometto che poi vado a fare pratica :)Nell'ultimo esempio che ho fatto, l'utente ha la possibilità di specificare completamente il path e nome del file. L'utente potrebbe inserire qualunque cosa: un nome di file senza path, con path assoluto o anche relativo.
Se vuoi potresti chiedere all'utente solamente un nome e basta, il path completo poi lo componi tu nel programma.
#include <stdio.h>
#include <string.h>
....
char nomefile[40];
char path[200];
FILE *f;
printf ("Dammi solo il nome del file: ");
scanf ("%s", nomefile);
strcpy (path, "C:\\TEMP\\");
strcat (path, nomefile);
f = fopen (path, "w");
In questo modo l'utente deve inserire solamente un nome (es. "pippo.txt") e nel programma componi il path completo.
Certo ... l'utente potrebbe essere scaltro da inserire "..\pippo.txt" e in questo caso il file verrebbe aperto nella C:\. Ma qui si tratta sempre di stabilire cosa l'utente debba/possa fare o meno.
ecco ora so come fare!!! grazie mille :D...quando sarò un super programmatore me ne ricorderò :sofico: :Prrr:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.