Visualizzazione risultati 1 fino 10 di 10

Discussione: [C] Creare file.txt con nome inserito dall'utente

  1. #1
    Guest

    Exclamation [C] Creare file.txt con nome inserito dall'utente

    Ciao a tutti :)
    Sto lavorando a un piccolo progetto durante la vacanze natalizie e ho un piccolo problema (da premettere che ho appena iniziato il che è un buon segno hhaha ).
    Vorrei creare un file in formato testo, fino a qui ci siamo.
    Però vorrei, se possibile, far si che l'utente assegni il nome al file..
    Per esempio:
    INSERIRE TITOLO: Ciao

    A questo punto il mio programma crea un file di tipo: Ciao.txt
    Come fare?
    Io per creare il file ho fatto così:
    Codice:
    file = fopen("Prova.txt","w");
    Attendo vostre notizie xD

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,170

    Predefinito

    Invece di "Prova.txt", devi passare la stringa acquisita dall'utente..

    Occhio che se il file esiste già, lo sovrascrivi, eliminandolo... Dovresti mettere prima un controllo.

    Ciao!
    Ultima modifica di alemoppo : 20-12-2012 alle ore 16.18.42

  3. #3
    Guest

    Predefinito

    Sai dirmi come? Io ho provato ma continua a darmi errore.. :)

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,170

    Predefinito

    Come provi? Che errore hai?

    Ciao!

  5. #5
    Guest

    Predefinito

    Io ho provato in diversi modi, la soluzione che più si avvicina è:
    Codice:
    printf("INSERIRE TITOLO: ");
              scanf("%s",&title);
    file = fopen(&title,"w");
    Il problema è che, mi crea si un file, ma non ha estensione .txt :/

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,170

    Predefinito

    title cosa è? array? carattere? altro?

    Nota che la fopen vuole una stringa come nome del file; quindi un array di char. Anche nel secondo parametro della scanf devi immettere una stringa.

    Ti consiglio prima di far queste cose, di guardarti bene il collegamento che c'é tra array e puntatori.

    Per l'estensione, questa fa parte del nome del file. Se vuoi che sia ".txt", devi concatenarlo alla stringa prelevata dall'utente.

    Ciao!

  7. #7
    Guest

    Predefinito

    Codice:
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    #define DIM_MAX_STRING 50000
    
    int main(){
    FILE *file;
    char scrittura[DIM_MAX_STRING],title[DIM_MAX_STRING];
              printf("INSERIRE TITOLO: ");
              scanf("%s",&title);
    file = fopen(&title,"w");
    .
    .
    .
    Come vedi title è un array di char, tu sapresti dirmi come concatenarlo in modo da creare il file con estensione .txt? :)
    Ultima modifica di mathis : 20-12-2012 alle ore 16.34.56 Motivo: Errore nel copiare il codice

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,170

    Predefinito

    Un nome di un file lungo 50000 caratteri, mi sembra proprio improbabile (almeno, con gli attuali filesystem è praticamente impossibile). Soltanto uno spreco di memoria.

    Inoltre, referenziare in quel modo un array (stringa), non ha senso.
    Come ti ho detto prima, guardati il legame tra puntatori e array.

    Ciao!
    Ultima modifica di alemoppo : 20-12-2012 alle ore 16.37.56

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Un nome di un file lungo 50000 caratteri, mi sembra proprio improbabile (almeno, con gli attuali filesystem è praticamente impossibile). Soltanto uno spreco di memoria.

    Inoltre, referenziare in quel modo un array (stringa), non ha senso.
    Come ti ho detto prima, guardati il legame tra puntatori e array.

    Ciao!
    Lo farò :) Comunque ho assegnato un valore "ad muzzum" per provare

    ----------------------------
    Ho risolto un problema e ne ho creato un altro :/
    Adesso non mi fa più scrivere il testo da memorizzare :/ Va bé, ci smanetto su :)
    In caso, ripongo le mie speranze in voi xD
    Ciao :)
    -------------
    Risolto anche questo :) Ora passiamo alla parte "complicata" :)
    Grazie ancora, è bello trovare persone disponibili e che ti consigliano e ti spingono a ragionare, persone ch non ti danno solamente la stringa :)
    Ultima modifica di mathis : 20-12-2012 alle ore 17.26.49 Motivo: Messaggio aggiuntivo

  10. #10
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,170

    Predefinito

    Ok. Se non riesci, scrivi il codice.

    Ciao!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •