#include <stdio.h>
#include <iostream.h>
int lese_zahl(unsigned char *,int*); //liesst die zahlen aus der datei
void speicher(FILE *,char *,int); //speichert die ergebnisse in die datei
void main()
{
unsigned char puffer[256];
int zaehler=0;
int laenge;
FILE *fp;
int a1, a2, a3, b1, b2, b3, x, y;
fp=fopen("ein.txt","r"); //datei öffnen
laenge=fread(puffer,1,256,fp); //und in den puffer laden
fclose(fp); //datei schließen
a1=lese_zahl(puffer,&zaehler); //lese a1 usw.
a2=lese_zahl(puffer,&zaehler);
a3=lese_zahl(puffer,&zaehler);
b1=lese_zahl(puffer,&zaehler);
b2=lese_zahl(puffer,&zaehler);
b3=lese_zahl(puffer,&zaehler);
x=lese_zahl(puffer,&zaehler);
y=lese_zahl(puffer,&zaehler);
/* hier kommt deine berechnung rein*/
fp=fopen("aus.txt","w"); //erstelle eine datei aus.txt
speicher(fp,"a1",a1); //speicher "a1=..." usw.
speicher(fp,"a2",a2);
speicher(fp,"a3",a3);
speicher(fp,"b1",b1);
speicher(fp,"b2",b2);
speicher(fp,"b3",b3);
speicher(fp,"x",x);
speicher(fp,"y",y);
fclose(fp);
}
// diese funktion wandelt ascII- zahlen in int um
// übergabe von puffer und zähler als adresse
int lese_zahl(unsigned char *p,int* i)
{
int variable=0,v,x;
x = *i; //adresseninhalt nach x (zaehler)
for (;p[x]!='=';x++) {} //bis zum nächsten '=' gehen
x++; //zum zeichen nach '='
for (;p[x]<='9' && p[x]>='0';x++) //solange pufferzeichen >'0'-zeichen und <'9'-zeichen im ASCII
{
v=p[x]-'0'; //mache zeichen zur ziffer
variable=variable*10+v; //dualzahl * 10 + ziffer
}
*i = x; //aktuelle pufferpos merken
return variable; //rüchgabe der neuen variablen
}
//speichert text und zahl in eine datei
//übergabe von dateihandle, adresse des textanfangs und die zahl
void speicher(FILE *hwd,char *text,int zahl)
{
char stringzahl[20]; //maximale länge von 19 ziffern
int i=18; //letzte ziffer an pos 18
stringzahl[19]=0; //pos nach letzter ziffer muß 0 sein (stringabschluß)
for (;zahl>0;i--) //solange zahl >0
{
stringzahl=zahl%10+'0'; //ziffer zu zeichen und in den string
zahl=zahl/10; //zahl /10 (rest verschwindet bei int)
}
i++; //durch schleife eine pos zu weit vorn
fprintf(hwd,"%s=%s\n",text,stringzahl+i);
//speichern von text und zahlenstring
}