Zum Inhalt springen

toosten

Mitglieder
  • Gesamte Inhalte

    35
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von toosten

  1. Also bei mir ist ein string eine folge von zeichen.
  2. Du solltest schreiben was du meinst ... ich bin kein hellseher .
  3. toosten

    typumwandlung????

    Wenn du den int-wert als ascII-zeichen in eine datei speichern willst mach es mit fprintf() ansonsten: int zahl = 2000; 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 //stringzahl+i= stringanfang
  4. falls es mehr als ein zeichen sein soll char string[]="123456789"; char text[]="abc"; strncpy(string+1,text,sizeof(text)-1); //string="1abc56789"; aber vorsicht strncpy achtet nicht auf textende !!! strncpy(string+7,text,sizeof(text)-1); //string="1234567abc???? -ende kann immer anders sein strncpy(string+1,text,sizeof(text)); //string="1abc"
  5. char string[25]="01234567890123456789123" string[10]='a' fertig ;-)
  6. So jetzt noch mit float. #include <stdio.h> #include <iostream.h> #include <math.h> float lese_zahl(unsigned char *,int*); //liesst die zahlen aus der datei void main() { unsigned char puffer[256]; int zaehler=0; int laenge; FILE *fp; float 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 fprintf(fp,"a1=%f\n",a1); //ausgabe der floatzahlen fprintf(fp,"a1=%f\n",a2); fprintf(fp,"a1=%f\n",a3); fprintf(fp,"a1=%f\n",b1); fprintf(fp,"a1=%f\n",b2); fprintf(fp,"a1=%f\n",b3); fprintf(fp,"a1=%f\n",x); fprintf(fp,"a1=%f\n",y); fclose(fp); } // diese funktion wandelt ascII- zahlen in int um // übergabe von puffer und zähler als adresse float lese_zahl(unsigned char *p,int* i) { float variable=0; int v,x,k; 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 } if (p[x]=='.' ||p[x]==',') //wenn punkt oder komma dann { x++; //zum nächsten zeichen for (k=1;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+v/pow(10,k);//floatzahl + ziffer / 10 hoch k k++; //exponent+1 } } *i = x; //aktuelle pufferpos merken return variable; //rüchgabe der neuen variablen }
  7. #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 }
  8. toosten

    Offset

    Das war mal bei DOS16 !!! Adresse = segment*10h + offset ;-) Ergänzung: zu Doszeiten war nur 1 MB Ram adressierbar (000f:ffffh) da aber eine 16Bit zahl nur 65536 Bytes (0ffffh) adressieren kann mußte man sich was einfallen lassen also hat man die adressierung in segment und offset aufgeteilt die adresse 000d:0000h kann mit segment offset 000d 0000 000c 1000 000b 2000 angesprochen werden alle 3 beispiele ergeben die adresse 000d:0000h Alles klar ??? [ 29. Mai 2001: Beitrag editiert von: toosten ]
  9. int variable:=0 unsigned char t:=0 int i:=0 solange string!=0 t:=string t:=t-'0' t > 9 nein | ja variable:=variable*10+t | break i++ ps: soll ein struktogramm sein !!!

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...