codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 30
#define MAX 50
int main(int argc,char*argv[])
{
FILE*fp;
char str[MAX];
char data[9];
char numero[21];
int min,min1,min2,i, sume,sumu;
char tipo[2];
char data1[9];
char data2[9];
if(argc!=2)
{
printf("errore\n");
return -1;
}
fp=fopen(argv[1],"r");
if(fp==NULL)
{
printf("file %s vuoto\n",argv[1]);
return -2;
}
printf("inserisci le due date:\n");
scanf("%s %s",data1,data2);
sume=0;
sumu=0;
while(fgets(str,MAX,fp)!=NULL)
sscanf(str,"%s %s %d %c",data,numero,&min,tipo);
for(i=0;i<MAX;i++){
if(strcmp(str,data1))
{
if(str=='E')
{
sume+=min;
min1=min;
}
}
else
if (strcmp(str,data2))
{
if(str=='U')
{
sumu+=min;
min2=min;
}
}
else
printf("errore\n");
}
fclose(fp);
printf("%s - Entrata: %d minuti - Uscita: %d minuti\n",numero,min1,min2);
printf("%s - Entrata: %d minuti - Uscita: %d minuti\n",numero,min1,min2);
return 0;
}
dato il seguente codice non riesco a visualizzare la somma dei minuti in Uscita (U) e dei minuti in entrata (E) del seguente tabulato.txt
20110701 345677770 30 U
20110603 02345678 10 U
20110704 345677770 30 U
20110701 345677770 18 U
20110702 011345345 20 E
20110703 338767676 90 U
che per esempio io do in input
Inserire le due date:
20110701 20110702
e in output ho:
345677770 – Entrata: 0 minuti - Uscita: 48 minuti
011345345 – Entrata: 20 minuti - Uscita: 0 minuti
cioè somma dei minuti di quei numeri compresi fra due date.
ho lanciato il codice ma mi esce solo uil tabulato dell ultimo numero e come minuti in E o in U numeri altissimi!!