Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24

Discussione: c++ stampa su file

  1. #1

    c++ stampa su file

    Ciao, sono una programmatrice c++ alle prime armi e ho un problemino!
    Sto cercando di realizzare in c++ una rubrica, la scheda di ogni contatto della rubrica deve essere stampata su un FILE, il mio problema è che non so come strutturare un ciclo in modo tale che il nome del file cambi per ogni nuovo contatto senza che venga sovrascritto sempre lo stesso file. Non so se sono stata chiara spero che qualcuno mi dia una mano!!
    grazie
    ciao ciao

  2. #2
    Ci sono molti modi per farlo..prendi esempio da qui:

    codice:
    #include <iostream.h>
    #include <fstream.h> 
              
    void f (char *);
              
    void main() { 
            char str[25];
            cout << "Inserisci il nome: ";
            cin.get (str, sizeof (str), '\n');
            f (str);           
    }
    
    void f (char *s) { 
            fstream f;
            f.open (s, ios :: out);
            f << s;
            f.close();
    }

  3. #3
    Grazie mille per l'aiuto, proverò anche se alcune delle funzioni che mi hai proposto non le conosco............se hai qualcosa di più semplice............io sono qui!!!!Accetto ogni consiglio o esemplificazione

    Grazie ancora

  4. #4
    codice:
    void f (char *s) { 
            fstream f;
            f.open (s, ios :: out);
            f << s;
            f.close();
    }
    La funzione non fà altro che acquisire una stringa che poi sarà quella che dà nome al file.

    Quali sono le funzioni che non conosci?

  5. #5
    Ecco adesso mi è più chiaro!!! Io la libreria <fstream.h> non l'ho mai usata e quindi non conosco bene le sue funzioni!!
    Io facevo una cosa di questo tipo:

    ------------------------------- codice
    FILE *prova
    //stampa dei dati ottenuti da tastiera nel file
    prova=fopen("c:/r1.txt","w");// questa linea è il problema...

    fprintf(prova,"\n\nnome=%s\n\ncognome=%s\n\nindiri zzo=% s\n\ncittà=%s\n\ncap=%s\n\ntelefono=%s\n\netà=%s", nome,cognome,indirizzo,citta,cap,telefono,eta);

    fclose(prova);

    -------------------------------------fine codice

    Il problema era proprio sul percorso c:/r1.txt perchè messo cosi ogni volta che fai un inserimento viene sovrascritto nel medesimo file, io invece voglio che per ogni nuovo contatto mi crei un nuovo file.
    Proverò ad inserire la funzione che mi hai scritto adattandola alla situazione........ poi incrocio le dita e spero vada bene :gren:

  6. #6
    codice:
    FILE *prova 
    //stampa dei dati ottenuti da tastiera nel file 
    prova=fopen("c:/r1.txt","w");// questa linea è il problema... 
    
    fprintf(prova," \n\nnome=%s\n\ncognome=%s\n\nindirizzo=%
    s\n\ncittà=%s\n\ncap=%s\n\ntelefono=%s\n
    \netà=%s" ,nome,cognome,indirizzo,citta,cap,telefo
    no,eta); 
    
    fclose(prova);
    hai messo la barra sbagliata..
    tra l' altro devi metterne 2 \\ altrimenti puoi causare errori
    ad esempio se metti \n interpreta come "Vai a Capo"..ciao..
    se hai qualche problema guarda nel link della mia firma..
    c'e' scritto tutto..

  7. #7
    No la barra non è sbagliata anzi funziona perfettamente....... lo so che su Win le barre usate sono \ ma quel particolare l'ho trovato su un tutorial e ti assicuro che funziona. Il problema mio era ed è quello di mettere un ciclo in modo che quel percorso
    c:/r1.txt
    si incrementi automaticamente ad ogni nuovo inserimento diventando ad esempio r2.txt poi r3.txt e cosi via!!!!
    come si puo fare??? Bisogna perforza chiedere all'utente di inserire il percorso dove stampare il file del nuovo contatto???? Non si può fare tutto senza che all'utente finale venga chiesto niente?????

    Forse sono un pò "de coccio" abbi pazienza..........non mi abbandonare!!!!

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    173
    forse è una stupidata, ma provare con la concatenazione delle stringhe??

  9. #9
    Originariamente inviato da sapore di mare
    Ecco adesso mi è più chiaro!!! Io la libreria <fstream.h> non l'ho mai usata e quindi non conosco bene le sue funzioni!!
    Io facevo una cosa di questo tipo:

    ------------------------------- codice
    FILE *prova
    //stampa dei dati ottenuti da tastiera nel file
    prova=fopen("c:/r1.txt","w");// questa linea è il problema...

    fprintf(prova,"\n\nnome=%s\n\ncognome=%s\n\nindiri zzo=% s\n\ncittà=%s\n\ncap=%s\n\ntelefono=%s\n\netà=%s", nome,cognome,indirizzo,citta,cap,telefono,eta);

    fclose(prova);

    -------------------------------------fine codice

    Il problema era proprio sul percorso c:/r1.txt perchè messo cosi ogni volta che fai un inserimento viene sovrascritto nel medesimo file, io invece voglio che per ogni nuovo contatto mi crei un nuovo file.
    Proverò ad inserire la funzione che mi hai scritto adattandola alla situazione........ poi incrocio le dita e spero vada bene :gren:
    <fstream.h> server per gestire i file in C++.
    fopen() ecc.. sono ancora del vecchio C, leggendo il tuo post ho letto "programmatrice c++", quindi credevo utilizzassi la <fstream> e non la <stdio>.

    Comunque si si può fare:
    Basta che dichiari una variabile intera, e che ogni volta la converti in stringa cosi:

    codice:
    sprintf (var_stringa, "r%d", tuavarintera);
    Poi fai incrementi, aggiunte ecc..alla variabile intera e usi sempre quel procedimento per aprire il file:

    codice:
    fopen (var_stringa, "w");
    var_stringa prima vale r0, poi r1, r2 ecc..dipende da cosa fai alla "tuavarintera".

    Ciao!

  10. #10
    Infatti hai ragione......quel metodo non è proprio del c++ ma era l'unico che conoscevo fino a quando non mi hai aperto l'altra strada adesso vedo di approfondire il discorso <fstream.h>!!! Credo mi sia utile se non indispensabile!!! Potresti consigliarmi qualche documentazione on-line dove si spiegano un pò le funzioni di <stream.h>????
    Grazie mille!!!!
    Ciao ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.