Zum Inhalt springen

toosten

Mitglieder
  • Gesamte Inhalte

    35
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von toosten

  1. Kommt drauf an
  2. Also bei mir ist ein string eine folge von zeichen.
  3. Du solltest schreiben was du meinst ... ich bin kein hellseher .
  4. 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
  5. 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"
  6. char string[25]="01234567890123456789123" string[10]='a' fertig ;-)
  7. 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 }
  8. #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 }
  9. 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 ]
  10. 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...