SEEK_END Übertragbarkeit
-
Was soll ich benutzen, da SEEK_END nicht übertragbar ist?
Zum Beispeil (in C):
fseek(rDatei, 0, SEEK_END) Dgr = ftell(rDatei);
-
SEEK_END sollte eigentlich portabel sein, bloß für Streams im binary-Modus ist undefiniertes Verhalten erlaubt.
P.S.: Wenn du die Größe einer Datei wissen möchtest, guck dir mal fstat an. Gibt es für Windows und Posix, hat mWn sogar bei beiden die gleiche Syntax. Damit deckst du wohl 99.99999% aller Systeme ab.
-
Nach einem fopen(( , "ab"); stehst du am Dateiende.
Bevor du mit fseek oder fsetpos irgendwo in deiner Datei hin springst lässt du dir die Position mit ftell/fgetpos geben.
Diese Position kannst du immer erreichen.
Nach dem verändern in der Datei kannst du dann wieder zum Ende springen.
Du musst nur darauf achten, ob die neue Position mittlerweile nicht vor der aktuellen liegt.
-
Ich bin euch sehr dankbar für eure Hilfe.
Eine weitere Frage; was ist hier los:
#include <stdio.h> void main () { struct Adresse { int id; char Buchstabe; char Name[10]; }; struct Adresse Angela; Angela.id = 27; Angela.Buchstabe = 'j'; Angela.Name = {'A', 'n', 'g', 'e', 'l', 'a','\0'}; }
FEHLERMELDUNGEN DES COMPILERS
newtest.c: In Funktion »main«:
newtest.c:18:19: Fehler: expected expression before »{« token
-
So kannst du einem Array nur bei der Definition einen Wert zuweisen.
Wichtige Grundlage in C
-
Wie kann ich denn dasselbe Array in einem Struct benutzen? Mit dem Typ
char.
-
// Bei der Definition gleich initialisieren struct Adresse Angela = {27, 'j', "Angela" }; //oder strcpy(Angela.Name, "Angela"); // oder Angela.Name[0] = 'A'; Angela.Name[1] = 'n'; Angela.Name[2] = 'g'; Angela.Name[3] = 'e'; Angela.Name[4] = 'l'; Angela.Name[5] = 'a'; Angela.Name[6] = '\0';
-
Mit C99 geht es auch mit compound literals mitten im Code und nicht nur bei der Initialisierung
... Angela = (struct Adresse) {.Name="Angela"};
allerdings sind hier die anderen, nicht angegebenen Strukturelemente ausgenullt.
-
// Bei der Definition gleich initialisieren
//oder
// oder
Danke für die Zurverfügungstellung der dreien verschieden Beispielen.
-
Ich habe gerade woanders gelesen, dass main int zurückgeben muss. Richtig
oder falsch? Warum?(Niemand korrigierte jenen Teil des Codes)
-
Steht auch in der (Unterforen-)FAQ: http://www.c-plusplus.net/forum/viewtopic.php?t=39346