Visualizzazione dei risultati da 1 a 3 su 3

Discussione: File

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2012
    Messaggi
    8

    File

    Ragazzi, perché la funzione modifica di questo file non funziona?
    Non riesco a capire il perché
    PS: Scusate, il programma è fatto velocemente e solo per vedere se le funzioni funzionassero xD

    codice:
    #include <iostream> #include <stdio.h> using namespace std; struct lazio { char nome [30]; }; int menu (); void inserimento (); void modifica (); void stampa (); //------------------------------- main ---------------------------------------- int main() { int s; do { s=menu(); switch (s) { case 1: inserimento (); break; case 2: modifica (); break; case 3: stampa (); break; case 4: cout<<" "<<endl; } } while (s!=4); return 0; } int menu () { int scelta; cout<<"1 Inserimento "<<endl; cout<<"2 Modifica "<<endl; cout<<"3 Stampa "<<endl; cout<<"4 Exit "<<endl; cout<<" Scelta -> "; cin>>scelta; return scelta; } void inserimento () { FILE *fp; lazio x; fp=fopen("Lazio.dat","a+b"); //Apertura file cout<<"Nome: "; cin>>x.nome; fwrite (&x, sizeof(lazio), 1, fp); //Scrittura nel file fclose (fp);//Chiusura File } void modifica () { FILE *fp; lazio x; char y[30]; int k=0; int z=-1; cout<<"Inserire un nome: "; cin>>y; //Variabile che si confronterà con quella del file fp=fopen("Lazio.dat", "r+b"); //Apertura File while ( fread ( &x, sizeof (lazio), 1, fp ) ) //Ciclo che legge tutto il file { if ( strcmp (y,x.nome)==0 ) { cout<<"Nuovo nome: "; cin>>x.nome; fwrite (&x, sizeof(lazio), 1, fp); //Scriviamo sul File fseek(fp, z, SEEK_CUR); k++; //Dopo aver trovato il nome, incrementiamo questa variabile per il controllo se qualcosa è stato modificato o meno } } if (k==0) cout<<"Nome non trovato."<<endl; fclose (fp); } void stampa () { FILE *fp; lazio x; fp=fopen("Lazio.dat", "rb"); //Apertura File while ( fread ( &x, sizeof (lazio), 1, fp ) ) { cout<<"Nome: "<<x.nome<<endl; } fclose (fp); }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Riesci a leggere il codice nel tuo post?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3

    Moderazione

    Appunto, inoltre:
    - titolo non significativo;
    - tag linguaggio assente;
    - nessuna descrizione del problema.
    Rileggi il regolamento e ricrea il thread impostandolo correttamente.

    Amaro C++, il gusto pieno dell'undefined behavior.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.