Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Primi passi 2.0

  1. #1

    Primi passi 2.0

    Ho scritto un piccolo programma in C (come esercizio) .
    Ora sono bloccato su un dubbio .
    Posso dare dei parametri alla fread per cercare un record specifico nelfile dat ?
    Questo è il codice che ho scritto .
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #define STORE_FILE "store.dat"
    #define READ_FILE "read.txt"




    typedef struct{ //dato strtutturato
    char libro[50];
    char autore[50];
    }libro;
    main(){


    char ty;{ //char menù
    printf("\n\t----------------------");
    printf("\n\t-Menu'di scelta- ");
    printf("\n\t----------------------");
    printf("\n\t1-Inserisci libro ");
    printf("\n\t2-leggi dati ");
    printf("\n\t3-Esci ");
    printf("\n\t4-Leggi elenco anagrafica");
    printf("\n5-Cerca per autore:");
    }
    printf("\n\t----------------------");
    printf("\n\t-Scelta : ",ty);
    printf("\n\t=>");
    ty=getchar();
    getchar(); //riga che annulla l'invio dopo la scelta (riga inutile).
    switch (ty) {
    case '1':
    FILE *fp;
    libro l;
    int i;

    if(!(fp=fopen(STORE_FILE,"a+b"))){
    printf("\nErrore scrittura file%s",STORE_FILE);
    exit(1);
    }

    else
    printf("\n\t\t==>Iserisci<== ");
    printf("\n-Autore:"); //scrivoi dati
    gets(l.autore);
    printf("\n-Titolo:");
    gets(l.libro);

    if(fwrite(&l,sizeof(l),1,fp)>0){ //Scrivo il file binario
    printf("\nDati scritti OK");
    printf("\n----------------");
    fclose(fp);
    }
    {
    FILE *fp ;
    fp= fopen("read.txt","a+"); //Scrivo il file testuale read.txt
    fprintf(fp,"\nAutore:%s\t\tTitilo libro:%s",l.autore,l.libro);
    fclose (fp);
    }

    return main(); //ritorno alla funzione principale main
    break;
    case'2':

    if(!(fp=fopen(STORE_FILE,"rb"))){ //legggo il file binario
    printf("\n errore di lettura dei dati%s ",STORE_FILE);
    exit(1);
    }
    while(fread(&l,sizeof(l),1,fp)>0){

    printf("\n-Autore:%s",l.autore);
    printf("\n-Titolo:%s",l.libro);
    printf("\n------------");
    i++;
    }


    {
    int c;
    c=i-55;
    printf("\n=================");
    printf("\n-Titoli letti :%d\n",c);
    printf("\n=================");
    fclose(fp);
    return main() ; //torno al main ()
    break ;
    }

    case '3':
    exit(1); // usicta dal programma
    break;

    case '4':

    system ("start notepad.exe read.txt");
    return main(); // torno al main()
    break;
    }


    return 0;
    }

  2. #2
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,550
    sbagliato sezione
    posta in programmazione
    qui conosciamo tutti COBOL
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

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.