Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » speichern von structs geht nicht

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] [ 2 ] [ 3 ] > 4 <
030
18.04.2004, 22:41 Uhr
Pablo
Supertux
(Operator)


Die gotos erinnern mich an meine QBASIC Zeit, damal habe ich PASCAL gehasst, da ich nicht das Prinzip einer Procedure verstanden hab. Ich weiß, um ehrlich zu sein, nicht wirklich, warum gotos so "gehasst" sind, aber ich habe immer überall gelesen, man sollte die gotos vermeiden.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
031
18.04.2004, 23:08 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


naja klar kann man mit gotos ne menge scheisse bauen und den code richtig unübersichtlich machen wenn man vor allen dingen ständig in nem code vor und zurückspringt...
ein gutes beispiel für ein goto wäre ein break aus einer verschachtelten schleife... ein break(2) oder so gibts nicht in c und da ist goto doch sehr geigenet besonders wenn man aus einer sehr tiefen verzweigung aus den schleifen rauspringen will, sonst müsste man in jeder darüberliegenden schleife noch extra ein boolsche varibale abfragen ob denn weitergelaufen werden soll, was den code aber zugegebener massen nicht wirklich stark unübersichtlicher machen würde...
ein beispiel für strark unübersichtlichen code wo man unbedingt ein goto braucht fällt mir jetzt auch nicht ein aber in massen und an der richtigen stelle benutzt kann es die übersichtlichkeit erhöhen...
das gilt halt meist dann wenn man irgendwie einen ablauf hat der aber unterbrochen werden kann und wo dann bei einer unterbrechung sofort zum ende gesprungen werden soll...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
032
18.04.2004, 23:30 Uhr
(un)wissender
Niveauwart


@Guybrush Threepwood
Nein, es geht nicht ums einrücken, sondern um Codedublizierun, das ist was ganzzzz böses (warum ist wohl klar, oder ?-> Redundanz, Update anomalien, Ineffizienz,...) und genau das passiert wenn du das mit else machst.
Also, mache es mit Funktionsaufrufen.
Wenn du immer wieder das gleiche schreiben musst ist was ganz falsch und du solltest dein Design überdenken.

@Windalf
Endlich einer der die Bedeutung des goto versteht, und nicht nur irgendwo aufgefangenes Wissen runterbetet ohne wirklich zu verstehen was damit gemeint ist. (Denkt euch die Kommas)
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
033
18.04.2004, 23:56 Uhr
Pablo
Supertux
(Operator)


@Guybrush Threepwood: Das Einrücken ist ja für den Compiler egal.

@wissender: ja, um nicht 2 Mal die gleiche Folge von Anweisungen schreiben zu müssen, schreibt man auch die Funktionen
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
034
19.04.2004, 07:44 Uhr
~mike
Gast


Hi!
Danke noch mal für eure Hilfe. Bin gleich zweimal über meine eigene Dummheit gestollpert *autsch*
Pablo hat mir gestern noch geholfen, dass ganze zum Laufen zu bekommen (Post 018).

Danke nochmals
mfg mike - blutiger C Anfänger
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
035
19.04.2004, 07:57 Uhr
Pablo
Supertux
(Operator)


Kopf hoch! Das ist nicht schwer, aber man muss richtig verstanden haben, was man tut und ob man die Adresse oder den Inhalt eines Pointers speichert, das ist wichtig.

Am Anfang ist ein bisschen schwer, wenn du sehr viel übst, dann geht das von alleine.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
036
19.04.2004, 11:18 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

ja, um nicht 2 Mal die gleiche Folge von Anweisungen schreiben zu müssen, schreibt man auch die Funktionen


das alleine, die anweisung ein paar mal mehr zu schreiben wäre ja nicht weiter schlimm... Schlimmer sind spätere Inkonsitenzen aus diesen erzeugten redundanzen die mehr oder weniger zwangsläufig entstehen wenn du code mehrfach an viele stellen deines programms kopiert und dann nachher nochmal gezwungen bist was zu ändern...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
037
19.04.2004, 11:57 Uhr
0xdeadbeef
Gott
(Operator)


Beispielcode:

C++:
#include <stdio.h>

struct punkt {
  int x, y;
};

int main() {
  FILE *fd;
  struct punkt pkt, pkt2;

  pkt.x = 1;
  pkt.y = 2;

  fd = fopen("test.dat", "w");
  fwrite(&pkt, sizeof(struct punkt), 1, fd);
  fclose(fd);

  fd = fopen("test.dat", "r");
  fread(&pkt2, sizeof(struct punkt), 1, fd);
  fclose(fd);

  printf("x = %d, y = %d\n", pkt2.x, pkt2.y);

  return 0;
}


Mit der Methode sind die Dateien, die du da rausschreibst, aber nicht zwischen Maschinen mit verschiedenem Bytesex portabel. Wenn das wichtig ist, musst du je nach endian die Reihenfolge der Variablen im struct herumwürfeln oder dir komplexere i/o-Funktionen bauen, die die Elemente einzeln ausgeben. Oder halt nen anderen krassen Trick.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 19.04.2004 um 12:00 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] [ 2 ] [ 3 ] > 4 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: