Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Studente : Scia Massimiliano
- Classe : 3IC
- Data : 13/05/12 15:17
- Nome del file : modifica file
- */
- #include <iostream>
- #include <cmath>
- #include <ctime>
- #include <cstdlib>
- #include <cctype>
- #include <windows.h>
- #include <fstream>
- #include <time.h>
- #include <stdio.h>
- #define N 20
- using namespace std;
- struct mannaggia{
- char davide[N];
- char pappa[N];
- };//mannaggia
- bool scrivi(char* nomefile){
- int n;
- cout<<"\nQuanti nomi vuoi inserire?\n- ";
- cin>>n;
- FILE* f;
- mannaggia a_te;
- f=fopen(nomefile,"ab+");
- if(f==NULL)
- return 0;
- for(int i=0;i<n;i++){
- cout<<"\nInserisci il nome: ";
- fflush(stdin);
- cin.get(a_te.davide,N,'\n');
- fflush(stdin);
- cout<<"\nInserisci il cognome: ";
- cin.get(a_te.pappa,N,'\n');
- fflush(stdin);
- fwrite(&a_te,sizeof(mannaggia),1,f);
- }//for
- fclose(f);
- return 1;
- }//scrivi
- bool modifica(char* nomefile){
- FILE* f;
- f=fopen(nomefile,"rb+");
- if(f==NULL)
- return 0;
- mannaggia ai_sandali_di_loreggia;
- int pos;
- cout<<"\nPer nome (n), cognome (c) o posizione (p) ? \n- ";
- char c;
- cin>>c;
- if(c=='n'){
- char bau[N];
- cout<<"\nInserisci il nome da cercare: ";
- fflush(stdin);
- cin.get(bau,N,'\n');
- fflush(stdin);
- while(!(feof(f))){
- fread(&ai_sandali_di_loreggia,sizeof(mannaggia),1,f);
- if(strcmp(bau,ai_sandali_di_loreggia.davide)==0){
- cout<<"\nInserisci il nuovo nome: ";
- fflush(stdin);
- cin.get(ai_sandali_di_loreggia.davide,N,'\n');
- fflush(stdin);
- cout<<"\nInserisci il nuovo cognome: ";
- cin.get(ai_sandali_di_loreggia.pappa,N,'\n');
- fflush(stdin);
- fseek(f,-sizeof(ai_sandali_di_loreggia),SEEK_CUR);
- fwrite(&ai_sandali_di_loreggia,sizeof(mannaggia),1,f);
- break;
- }//if
- }//while
- }//if
- else if(c=='c'){
- char bau[N];
- cout<<"\nInserisci il cognome da cercare: ";
- fflush(stdin);
- cin.get(bau,N,'\n');
- fflush(stdin);
- while(!(feof(f))){
- fread(&ai_sandali_di_loreggia,sizeof(mannaggia),1,f);
- if(strcmp(bau,ai_sandali_di_loreggia.pappa)==0){
- cout<<"\nInserisci il nuovo nome: ";
- fflush(stdin);
- cin.get(ai_sandali_di_loreggia.davide,N,'\n');
- fflush(stdin);
- cout<<"\nInserisci il nuovo cognome: ";
- cin.get(ai_sandali_di_loreggia.pappa,N,'\n');
- fflush(stdin);
- fseek(f,-sizeof(ai_sandali_di_loreggia),SEEK_CUR);
- fwrite(&ai_sandali_di_loreggia,sizeof(mannaggia),1,f);
- break;
- }//if
- }//while
- }//else-if
- else{
- cout<<"\nPosizione in cui cercare (maggiore di zero): ";
- cin>>pos;
- pos--;
- int i=0,maxrec;
- fseek(f,0,SEEK_END);
- maxrec=ftell(f)/sizeof(mannaggia);
- cout<<"\nInserisci il nuovo nome: ";
- fflush(stdin);
- cin.get(ai_sandali_di_loreggia.davide,N,'\n');
- fflush(stdin);
- cout<<"\nInserisci il nuovo cognome: ";
- cin.get(ai_sandali_di_loreggia.pappa,N,'\n');
- fflush(stdin);
- fseek(f,(pos)*sizeof(mannaggia),SEEK_SET);
- fwrite(&ai_sandali_di_loreggia,sizeof(mannaggia),1,f);
- }//else
- }//modifica
- bool visualizza(char* nomefile){
- FILE* f;
- f=fopen(nomefile,"rb+");
- if(f==NULL)
- return 0;
- mannaggia a_me;
- while(fread(&a_me,sizeof(a_me),1,f) && !feof(f))
- cout<<"\n\nNome: "<<a_me.davide<<" Cognome: "<<a_me.pappa;
- fclose(f);
- return 1;
- }//visualizza
- void end(void){
- fflush(stdin);
- cout<<"\n\nPremere Invio per continuare.";
- getchar();
- }//end
- int main(){
- char nomefile[N];
- char c;
- bool s,m,v;
- cout<<"\nIl nome del file su cui scrivere e`: ";
- fflush(stdin);
- cin.get(nomefile,N,'\n');
- fflush(stdin);
- s=scrivi(nomefile);
- v=visualizza(nomefile);
- cout<<"\nVuoi modificare? s=si n=no\n- ";
- cin>>c;
- if(c=='s'){
- m=modifica(nomefile);
- v=visualizza(nomefile);
- }//if
- else
- v=visualizza(nomefile);
- end();
- return 0;
- }//main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement