Characterausgaben unter C

Post Reply
Message
Author
Winfried

Characterausgaben unter C

#1 Post by Winfried »

Hi, Ich wollte unter C ein Programm schreiben bei dem u.a. viele einzelne Character in eine Datei geschrieben werden. Bisher habe ich es mit "fputc" folgendermassen geloest:

<AUSSCHNITT>
fputc(0x2d,datei); fputc(0x57,datei);
fputc(0x00,datei); fputc(0x10,datei);
fputc(0x98,datei); fputc(0xbc,datei);
... etc.
</AUSSCHNITT>

Ich haette aber lieber etwas in der Art wie:

<AUSSCHNITT>
char DATEN[27];

DATEN=(0x2d, 0x57, 0x00, 0x10, 0x98, 0xbc, ... etc.);

fprintf (datei, "%s",DATEN);
</AUSSCHNITT>


Ist soetwas irgendwie moeglich?

Jochen

Re: Characterausgaben unter C

#2 Post by Jochen »

Öh, da Dein dritter Wert bereits 0x00 ist, ist für C dort der String schon zu Ende... Also eher eine for-Schleife um einen fputc-Aufruf machen.

Thomas Mitzkat

Re: Characterausgaben unter C

#3 Post by Thomas Mitzkat »

Hallo,

wie wär's mit fwrite()?

Syntax: size_t fwrite(void *Adresse, size_t Größe, size_t Anzahl, FILE *Dateivariable)

Die zu speichernde Byteanzahl, also die Größe des Blocks, ermittelt fwrite(), indem diese Funktion die Angaben "Größe" und "Anzahl" miteinander multipliziert.

Beispiel:

fwrite( &DATEN, 27, sizeof(CHAR), datei)


Gruß Thomas

Winfried

Re: Characterausgaben unter C

#4 Post by Winfried »

@Thomas:

Gute Idee. Aber wie uebergebe ich "DATEN" die ganzen Werte?

DATEN=(0x2d, 0x57, 0x00, 0x10, 0x98, 0xbc, ... etc.);

funktioniert ja bekanntlich nicht. <img src="http://www.pl-forum.de/UltraBoard/Images/Sad.gif" border="0" align="middle">

DATEN[0]=0x2d; DATEN<font size="1">=0x57; DATEN<font size="2">=0x00;
DATEN<font size="3">=0x10; DATEN<font size="4">=0x98; DATEN[5]=0xbc;
... etc.

funktioniert, ist mir aber etwas zu lang. Da waere mir meine fputc-Variante schon lieber, weil man dort leichter einen Wert "dazwischenschieben" kann.

Gibt es somit eine Moeglichkeit die Werte wie oben zu uebergeben?

Winfried

Re: Characterausgaben unter C

#5 Post by Winfried »

Ich bin gerade entsetzt, was aus meiner Nachricht geworden ist.
Eigentlkich sollte der Text ueberall gleich gross bleben.

Und ich schrieb dort:

DATEN[0 ]=0x2d; DATEN[1 ]=0x57; DATEN[2 ]=0x00;
DATEN[3 ]=0x10; DATEN[4 ]=0x98; DATEN[5 ]=0xbc;
... etc.

(Ueberall ohne diese Luecke)

bakunin
Posts: 597
Joined: 16. Aug 1999 6:44
Location: Lorsch (Südhessen)
Contact:

Re: Characterausgaben unter C

#6 Post by bakunin »

Hi!

char *daten = { 0x0e, 0xff, 0x00, 0x3e };

Cheers,
Wolfgang

Post Reply