Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2015
    Messaggi
    18

    Problema con i file (C/C++)

    Ciao ragazzi, devo scrivere un programma in C che, inserite due date, mi restituisca la differenza in giorni. Inoltre, devo inserire in un file "input.txt" le due date separate da uno spazio e in un file "ouput.txt" il risultato.
    Questo è il codice; potreste dirmi cosa sbaglio?

    codice:
    #include <stdio.h>
    #include <time.h>
    int main ()
    {
        static struct tm date1;
        static struct tm date2;
        time_t start, end;
        double diffsec;
        int d, m, y, diffdays, startdate, enddate;
        FILE *in, *out;
        system ("color 1b");
        time (&start);
    
    
        in = fopen ("input.txt", "r");
        out = fopen ("output.txt", "r");
    
    
        do
        {
            printf ("Enter the start-date using the slash bar (/): ");
            scanf ("%d/%d/%d", &d, &m, &y);
            date1.tm_mday = d;
            date1.tm_mon = m-1;
            date1.tm_year = y - 1900;
    
    
            printf ("Enter the end-date using the slash bar (/): ");
            scanf ("%d/%d/%d", &d, &m, &y);
            date2.tm_mday = d;
            date2.tm_mon = m-1;
            date2.tm_year = y - 1900;
    
    
        }
        while (mktime(&date2) < mktime(&date1) || d>31 || m>12 || y<1900 || d==0 || m==0);
    
    
        fscanf (in, "%.f   %.f", mktime (&date1), mktime (&date2));
        fscanf (out, "%.f", difftime(mktime(&date2), mktime(&date1))/86400);
        fclose (in);
        fclose (out);
    
    
        time (&end);
        diffsec = difftime (end, start);
    
    
        printf ("\n");
        if (difftime(mktime(&date2), mktime(&date1))/86400 == 1)
            printf ("The difference between the dates is %.f day\n", difftime(mktime(&date2), mktime(&date1))/86400);
        else
            printf ("The difference between the dates is %.f days\n", difftime(mktime(&date2), mktime(&date1))/86400);
        printf ("\n");
        printf ("Time of execution: %f seconds\n", diffsec);
        printf ("\n");
        system ("PAUSE");
    }
    Ultima modifica di LeleFT; 02-11-2015 a 13:17 Motivo: Aggiunti i tag CODE

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Stai leggendo dal file in cui dovresti scrivere.

    P.s. Usa i tag code
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

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.