/*
$Id: read_tgidata.c,v 1.4 2000/07/05 15:38:57 drum Exp $
Changed to needs of group 56 by Kai Römer, Thomas Jähnel, Dominik Birgel
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include "read.h"
extern void calc(float *, float *, float *,float *);
void usage(char *prgname);
void usage(char *prgname)
{
printf("usage: %s [file] \n",prgname);
}
int main(int argc, char** argv)
{
int linesread = 0,i;
float *data1, *data2, *results1, *results2;
FILE* inf = NULL;
char line[MAXLINELENGTH];
float l1, l2;
if(argc==2)
{
inf = fopen(argv[1],"r");
if(!inf)
{
perror("Can't open file"); exit(1);
}
}
else if(argc==1)
{
inf = stdin;
}
else
{
usage(argv[0]);
exit(-1);
}
data1 = (float *)malloc(MAXLINES * sizeof(float));
data2 = (float *)malloc(MAXLINES * sizeof(float));
results1 = (float *)malloc(MAXLINES * sizeof(float));
results2 = (float *)malloc(MAXLINES * sizeof(float));
if(!data1 || !data2 || !results1 || !results2)
{
perror("Can't alloc mem");
exit(3);
}
while(!feof(inf))
{
int index;
if(linesread>MAXLINES-1)
{
fprintf(stderr,"Too many lines, aborted\n");
break;
}
if(fgets(line, MAXLINELENGTH, inf)==NULL) break;
printf("Read: %s",line);
if(sscanf(line,"%f mm %f mm", &data1[linesread], &data2[linesread]) != 2)
{
fprintf(stderr, "Error in line: %s\n",line);
fprintf(stderr, "Aborted.");
break;
}
linesread++;
}
for(i=0;i<linesread;i++)
{
printf("%f %f\n", data1[i], data2[i]);
}
calc(data1, data2, results1, results2);
printf("\n\nDie Ergebnisse:\n");
for(i=0;i<linesread;i++) {
printf ("result1[%u] = %e ; result2[%u] = %e\n", i, results1[i], i, results2[i]);
}
if(argc!=1) fclose(inf);
return 0;
}