Esercizio sui file binari

di il
11 risposte

Esercizio sui file binari

Scrivere un programma di nome “es1 file binari” in C utilizzando i file binari che esegua in sequenza le seguenti operazioni:

1. Inserire da tastiera N numeri interi in un vettore chiamato vett1. Il numero N è stabilito dall’utente.Creare un file di nome “voti.dat” in scrittura e salvare il vettore.
2. Aprire il file “voti.dat” in lettura, leggere i valori del vettore presente nel file e calcolare la media.
3. Creare un file di nome “media.dat” in scrittura e salvare la media.
4. Aprire il file “media.dat” in lettura, leggere il valoredella media e stabilire se la media e sufficiente o insufficiente stampando un messaggio sul video. (sufficiente >=6).

ho provato a fare l'esercio, ma mi dice continuamente errore. Voi sapete dirmi dove ho sbagliato?

questo è il codice che ho fatto:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>

#pragma warning (disable:4996)

int main(){

	FILE* vett1;
	int i;
	int vett[10]; 
	vett1 = fopen("voti.dat", "wb");
	if(vett1 != NULL){
	   fwrite(voti, sizeof(int), 10, vett1);
	   fclose(vett1);
	}
	else {
	     printf("Errore!!");
	}
	   //lettura file
	printf("leggo il contenuto del file");
	vett1 = fopen("voti.dat","rb");
	if (N != NULL){
	   //file aperto
	fread(voti, sizeof(int), 10, vett1);
	   fclose(vett1);
	}
	else {
	     printf("Errore!!");
	}	
	     for (i = 0; i < 10; i++){
	     printf("inserisci il %d voti:", i + 1);
	     scanf("%d", &vett1)
	     vett[i] = vett1;
	     }
	     fclose(vett1);
	}
	else {
	     printf("Errore!!");
	}
	
	vett1 = fopen("media.dat", "wb");
	if(vett1 != NULL){
	   fwrite(media, sizeof(int), "10", vett1);
	   fclose(vett1);
	}
	else {
	     printf("Errore!!");
	}
	     for (i = 0; i < 10; i++){
	     printf("la media dei voti e'%d:", i + 1);
	     printf("\nSufficiente >=6);
	     }
	     fclose(vett1);
	}
	else {
	     printf("Errore!!");
	}
  }

11 Risposte

  • Re: Esercizio sui file binari

    Usa i tag code per il codice
    Come vedi non si capisce nulla.

    E poi spiegati... cosa fai? Quando hai errore?
  • Re: Esercizio sui file binari

    oregon ha scritto:


    Usa i tag code per il codice
    Come vedi non si capisce nulla.

    E poi spiegati... cosa fai? Quando hai errore?


    nono... non sto usando html, ma lo sto facendo in c++. Il programma mi dice che ci sono 17 errori,
    ma non capisco dove. Sarà alla fine? non si fa così la media? Non lo so
  • Re: Esercizio sui file binari

    Ma che c'entra l'html? Che hai capito? Devi usate i tag CODE per postare il codice sul FORUM! Leggi il regolamento

    E quali sarebbero questi 17 errori? Se non li riporti come facciamo con il codice che non si legge neanche?
  • Re: Esercizio sui file binari

    Usa il pulsante < / >
    
    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
    
    #pragma warning (disable:4996)
    
    int main(){
    
    	FILE* vett1;
    	int i;
    	int vett[10]; 
    	vett1 = fopen("voti.dat", "wb");
    	if(vett1 != NULL){
    	   fwrite(voti, sizeof(int), 10, vett1);
    	   fclose(vett1);
    	}
    	else {
    	     printf("Errore!!");
    	}
    	   //lettura file
    	printf("leggo il contenuto del file");
    	vett1 = fopen("voti.dat","rb");
    	if (N != NULL){
    	   //file aperto
    	fread(voti, sizeof(int), 10, vett1);
    	   fclose(vett1);
    	}
    	else {
    	     printf("Errore!!");
    	}	
    	     for (i = 0; i < 10; i++){
    	     printf("inserisci il %d voti:", i + 1);
    	     scanf("%d", &vett1)
    	     vett[i] = vett1;
    	     }
    	     fclose(vett1);
    	}
    	else {
    	     printf("Errore!!");
    	}
    	
    	vett1 = fopen("media.dat", "wb");
    	if(vett1 != NULL){
    	   fwrite(media, sizeof(int), "10", vett1);
    	   fclose(vett1);
    	}
    	else {
    	     printf("Errore!!");
    	}
    	     for (i = 0; i < 10; i++){
    	     printf("la media dei voti e'%d:", i + 1);
    	     printf("\nSufficiente >=6);
    	     }
    	     fclose(vett1);
    	}
    	else {
    	     printf("Errore!!");
    	}
      }
    
    Cosa sarebbe if(N!=NULL)? Dove hai dichiarato N?

    Non disabilitare i warning. Il povero compilatore sta cercando di aiutarti, se lo metti a tacere mica si risolve tutto per magia
  • Re: Esercizio sui file binari

    Il 4996 può essere disabilitato.... indica solo che certe funzioni non devono essere utilizzate ed è meglio usate quelle sicure...

    Ma è possibile che ci siano variabili non dichiarate come N o altre e non sivsappia che fare?
    Ma da chi è stato scritto questo codice? Lo hai copiato senza comprenderlo?
  • Re: Esercizio sui file binari

    Weierstrass ha scritto:


    Usa il pulsante < / >
    
    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
    
    #pragma warning (disable:4996)
    
    int main(){
    
    	FILE* vett1;
    	int i;
    	int vett[10]; 
    	vett1 = fopen("voti.dat", "wb");
    	if(vett1 != NULL){
    	   fwrite(voti, sizeof(int), 10, vett1);
    	   fclose(vett1);
    	}
    	else {
    	     printf("Errore!!");
    	}
    	   //lettura file
    	printf("leggo il contenuto del file");
    	vett1 = fopen("voti.dat","rb");
    	if (N != NULL){
    	   //file aperto
    	fread(voti, sizeof(int), 10, vett1);
    	   fclose(vett1);
    	}
    	else {
    	     printf("Errore!!");
    	}	
    	     for (i = 0; i < 10; i++){
    	     printf("inserisci il %d voti:", i + 1);
    	     scanf("%d", &vett1)
    	     vett[i] = vett1;
    	     }
    	     fclose(vett1);
    	}
    	else {
    	     printf("Errore!!");
    	}
    	
    	vett1 = fopen("media.dat", "wb");
    	if(vett1 != NULL){
    	   fwrite(media, sizeof(int), "10", vett1);
    	   fclose(vett1);
    	}
    	else {
    	     printf("Errore!!");
    	}
    	     for (i = 0; i < 10; i++){
    	     printf("la media dei voti e'%d:", i + 1);
    	     printf("\nSufficiente >=6);
    	     }
    	     fclose(vett1);
    	}
    	else {
    	     printf("Errore!!");
    	}
      }
    
    Cosa sarebbe if(N!=NULL)? Dove hai dichiarato N?

    Non disabilitare i warning. Il povero compilatore sta cercando di aiutarti, se lo metti a tacere mica si risolve tutto per magia


    Eeeeeeehhmm... si... mi sono accorto adesso che ho sbagliato. In realtà è if(vett1!=NULL), scusami
  • Re: Esercizio sui file binari

    Adesso hai degli errori? Se li hai li mostri e ne parliamo?
  • Re: Esercizio sui file binari

    Sì ma correggi pure gli altri errori banali, tipo il ; che manca e la scanf sul puntatore del file... vuoi scopiazzare male tanto poi qualcuno corregge al posto tuo?
  • Re: Esercizio sui file binari

    A parte il fatto che chiamare l'handle del file vett1 è incomprensibile...
  • Re: Esercizio sui file binari

    Ragazzi, c'è l'ho fatta. Ho cambiato un paio di cose e ora mi funziona. Grazie a tutte le persone che mi hanno dato una dritta. Mi scuso anche se non sono stato chiaro riguardo a quello che mi serviva. Grazie, a presto.

    edoardo
  • Re: Esercizio sui file binari

    ... CE l'ho fatta ..


    Meglio cosi
Devi accedere o registrarti per scrivere nel forum
11 risposte