Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Problema Programma non trovo l'errore!!!

    Salve a tutti ho bisogno di una mano in questo programma.
    Allora sulla base del fatto che questo programma deve creare dei file leggendo da un'altro file(binario) di nome Trimestre.bin ho un problema. Nel trimestre ci sono memorizzati strutture utenti con i campi nome,cognome,indirizzo ecc mi dovrebbe creare i file calcolando tutti gli importi ma non funziona mi calcola bene gli importi ma non crea i file correttamente e mi ritorna -10923030 ecc
    codice:
    #include <stdio.h> #include <windows.h> #include <stdlib.h> #include <string.h> #define MAX 100 typedef struct { char nome[21]; char cognome[21]; char fiscale[17]; char indirizzo[50]; // via ... float cFine_TriAttu; // lettura del contatore alla fine del trimestre attuale (metri cubi) float cFine_TriPrec; // lettura del contatore alla fine del trimestre precedente (metri cubi) float boll_Npag; // importo di eventuali bollette precedenti non pagate } Utente; void bolletta(Utente v[],int n); int main() { Utente tab[MAX]; FILE *fp; int i=0,l,n=0; system("cls"); if((fp=fopen("Trimestre.bin","rb"))==NULL) { printf("Devi prima creare un file TRIMESTRE.bin"); exit(1); } fread(&tab[0],sizeof(Utente),1,fp); while(!feof) { i++; l=i; fread(&tab[i],sizeof(Utente),1,fp); } fclose(fp); bolletta(tab,l); system("pause"); system("cls"); } void bolletta(Utente v[],int n) { FILE *f; char appo[51]; int i,j,mora=10; float tot,var; gotoXY(32,4); printf("|"); gotoXY(1,4); printf("|"); for(j=0; j<30; j++) { printf("%c",219); Sleep(150); } for(i=0; i<n; i++) { // for per creare bolletta per ogni utente strcpy(appo,v[i].fiscale); strcat(appo,".txt"); if(( f=fopen(appo,"w"))==NULL) { printf("\n\n ERRORE"); exit(1); } fprintf(f,"Nome: %s\n",v[i].nome); fprintf(f,"Codice Fiscale: %s\n",v[i].fiscale); fprintf(f,"Indirizzo: %s\n",v[i].indirizzo); fprintf(f,"Importo bollette precedenti: %f\n",v[i].boll_Npag); if(v[i].boll_Npag!=0) { fprintf(f,"mora: %d\n",mora); } fprintf(f,"Consumi Perioro (mc): %f\n",v[i].cFine_TriAttu); fprintf(f,"Quota fissa: %d\n",15); var=(2.5*v[i].cFine_TriAttu); fprintf(f,"Quota variabile: %f\n",var); if(v[i].boll_Npag!=0) { tot=10+var+15+v[i].boll_Npag; fprintf(f,"Totale da pagare: %f\n",tot); } else { tot=(2.5*v[i].cFine_TriAttu)+15; fprintf(f,"Totale da pagare: %4.f\n",tot); } fclose(f); } printf("\n\nBollette Pronte!!"); system("pause"); } void gotoXY(int x, int y) { COORD CursorPos = {x, y}; HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hConsole, CursorPos); }

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    E' il terzo avviso per il titolo inadeguato (vedi qui).

    Inoltre, il codice non è formattato correttamente.

    Rileggi il Regolamento e rispettalo, altrimenti le discussioni verranno chiuse senza preavviso (fino a un certo punto).
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.