Visualizzazione dei risultati da 1 a 10 su 10

Discussione: [c++]salvo e richiamo

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    85

    [c++]salvo e richiamo

    devo creare un programma dove l'utente scriva per esempio "a" e lo salvi e lo richiami cliccando qualcosa.
    qualcuno gentilmente mi potrebbe postare qualcosa di simile per studiarlo.
    E SE TUTTO FOSSE SOLO UN RIFLESSO?

  2. #2
    So che l'hai chiesto in C++
    ma questo codice funziona lo stesso :P

    codice:
    #include <stdio.h>
    #include <iostream>
    #include <string.h>
    using namespace std;
    
    void save();
    void load();
    
    struct casa{
        int num;
        char indirizzo[40];
        };
        
    int main(){
        save();
        load();
        
        system("PAUSE");
    }   
    
    void save(){
        struct casa c;
        
        c.num = 23;
        strcpy(c.indirizzo,"Via Trionfale");
        
        FILE *f;
        
        f = fopen("indirizzo.txt","w");  //"w" specifica che il file è aperto in scittura
        
        fwrite(&c, sizeof(c),1, f);
        
        fclose(f);
    }    
    
    void load(){
        struct casa c;
        FILE *f;
        f = fopen("indirizzo.txt","r"); //"r" == file apperto in lettura
        
        fread(&c, sizeof(c),1, f);
        fclose(f);
        
        cout << "Abiti in: " << c.indirizzo << " n." << c.num << "\n\n";
    }
    Se qualcosa non ti è chiaro posta pure

    [edit]
    Molti programmatori ritengono che non sia una buona cosa fare "fwrite" e "fread" di un intero struct, così perdi la portabilità ad altri OS del file creato.

    Essendo questo codice a scopo educativo non mi sono fatto problemi

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    85
    implicit declaration of function `int system(...)'
    mi da questo errore perchè?
    E SE TUTTO FOSSE SOLO UN RIFLESSO?

  4. #4
    Originariamente inviato da apatico
    implicit declaration of function `int system(...)'
    mi da questo errore perchè?
    codice:
    #include <stdlib.h>
    Vinum dolce gloriosum
    pingue facit et carnosum
    Vinum forte,vinum purum
    reddit hominem securum

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    85
    #include <stdlib.h>
    #include <iostream>
    #include <string.h>
    using namespace std;

    void save();
    void load();

    struct casa{
    int num;
    char indirizzo[40];
    };

    int main(){
    save();
    load();

    system("PAUSE");
    }

    void save(){
    struct casa c;

    c.num = 23;
    strcpy(c.indirizzo,"Via Trionfale");

    FILE *f;

    f = fopen("indirizzo.txt","w"); //"w" specifica che il file è aperto in scittura

    fwrite(&c, sizeof(c),1, f);

    fclose(f);
    }

    void load(){
    struct casa c;
    FILE *f;
    f = fopen("indirizzo.txt","r"); //"r" == file apperto in lettura

    fread(&c, sizeof(c),1, f);
    fclose(f);

    cout << "Abiti in: " << c.indirizzo << " n." << c.num << "\n\n";
    }

    mi da 8 errori,dice anche che ci sono alcuni file non dichiarati
    E SE TUTTO FOSSE SOLO UN RIFLESSO?

  6. #6
    Prova ad aggiungere "#include <stdio.h>"

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    85
    il programma adesso funziona però non è esattamente quello che cercavo.(ma questo che mi avete postato è qualcosa che vale la pena di studiare).
    io volevo che fosse l'utentre a scrivere dove abitava memorizzarlo e premendo un certo tasto vedere tutto quello che aveva memorizzato.............
    vorrei postato qualcosa così........................................
    E SE TUTTO FOSSE SOLO UN RIFLESSO?

  8. #8
    Basta sostituire questo pezzo di codice:
    codice:
    c.num = 23; 
    strcpy(c.indirizzo,"Via Trionfale");
    con qualcosa che legge l'input dall'user (es. cin)

    Cmq sia ti consiglio di comprare un libro sulla programmazione C\C++; ci troverai molti esempi utili e sicuramente delle spiegazioni + eusaurienti delle mie

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    85
    ho cercato di buttare giù qualcosa ma è troppo poco:

    codice:
                 #include <stdlib.h> 
    #include <iostream> 
    #include <string.h>
    #include <stdio.h>
    using namespace std; 
    
    void save(); 
    void load(); 
    
    struct casa{ 
    int num; 
    char indirizzo[40];
    }; 
    
    int main(){ 
    save(); 
    load(); 
    
    system("PAUSE"); 
    } 
    
    void save()
    {
    //il problema è che qui non so cosa metterci per realizzarlo
    } 
    
    
    void load()
    {
    //stessa cosa
    }

    se qualcuno riempisse di codice al posto dei miei commenti..............
    E SE TUTTO FOSSE SOLO UN RIFLESSO?

  10. #10
    Utente di HTML.it L'avatar di Angioletto
    Registrato dal
    Jan 2004
    Messaggi
    1,246
    Originariamente inviato da apatico

    io volevo che fosse l'utentre a scrivere dove abitava memorizzarlo e premendo un certo tasto vedere tutto quello che aveva memorizzato.............
    devi creare delle variabili da passare alla funzione, variabile il cui valore viene inserito dall'utente da linea di comando..
    usa i file per fare questo.
    ti posto un programma che feci all'epoca in cui dovevo fare l'esame di programmazione, dove inserisco da tastiera il vettore in un file e poi vado a leggere il file

    #include <iostream.h>
    #include <stdlib.h>
    #include <fstream.h>

    const int nmax = 50;
    typedef int vettore[nmax];

    void leggi_vettore (vettore& , int&);
    void salva_vettore (const vettore& , const int);
    void leggi_da_File (vettore& , int&);
    void stampa_vettore (const vettore& , const int);

    int main()
    {
    vettore v1 , v2;
    int dim1 , dim2;

    leggi_vettore ( v1 , dim1 );
    salva_vettore ( v1 , dim1 );

    cout << "Lettura vettore da file.\n\n";
    leggi_da_File ( v2 , dim2 );
    stampa_vettore ( v2 , dim2 );

    cout << "Vettore inserito da tastiera.\n\n";
    stampa_vettore ( v1 , dim1 );

    system("PAUSE");
    return 0;
    }

    void leggi_vettore (vettore& a , int& s)
    {
    do {
    cout << "Scegliere la dimensione del vettore ( max "<<nmax<<" elementi) : ";
    cin >> s;
    cout << endl;
    if ( s==0 || s > nmax) cout << "Numero di elementi non accettato!Riprova...\n\n";
    } while ( s==0 || s>nmax ) ;

    for ( int i=0; i<s ; i++) {
    cout << "Elemento " << i+1 << " : ";
    cin >> a[i];
    cout << endl;
    }
    }

    void salva_vettore (const vettore& a , const int size)
    {
    cout << "Salvataggio in corso...\n\n";
    ofstream out ("vettore.txt");
    for (int i=0 ; i<size ; i++) out << a[i] << " ";
    system("PAUSE");
    cout << "\n\nSalvataggio effettuato con successo!!!\n\n";
    out.close();
    }

    void leggi_da_File (vettore& a, int& size)
    {
    size = 0;
    ifstream in ("vettore.txt");
    if(in) {
    while( in >> a[size]) size++ ;
    }
    in.close();
    }

    void stampa_vettore (const vettore& a, const int size)
    {
    for (int i=0 ; i<size ; i++) cout << a[i] << " ";
    cout << endl << endl;
    }


    per la scelta devi creare un menu di questo tipo:


    do {
    stampaMenu();
    cin >> c;
    cin.ignore();

    switch (c) {
    case '1':
    //funzione1;
    break;
    case '2':
    //funzione2;
    break;
    case '3':
    break;
    default:
    cout << "Scelta non valida.\n";
    break;
    }
    } while (c != '3');

    return 0;
    }

    void stampaMenu() {
    cout << endl;
    cout << "1. Funzione1" << endl;
    cout << "2. Funzione2" << endl;
    cout << "3. Esci" << endl;
    cout << endl;
    cout << "Scelta: ";
    }
    Spero di aver capito il tuo problema e di averti aiutato!!
    Per liquidare un popolo si comincia con il privarli della memoria.Si distruggono i loro libri, la loro cultura, la loro storia. E qualcun’ altro scrive loro altri libri, li fornisce di un’altra cultura, inventa per loro un’altra storia. (Milan Kundera)

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.