unter windows hat doch ein zeilenumbruch \r\n und unter unix/linux \n oder? wieviele zeichen sind das jetzt? (auf jedenfall mind. 1)
du kannst ja checken
if(/*win: szString[a]!='\r'&&*/szString[a]!='\n'&&szString[a+1]!='\n')
{
//tu was
}
dann wird ja gecheckt ob das aktuelle entweder ein \r (kommentar weg) oder ein \n oder das aktuelle ein \r und das nächste ein \n ist.
normalerweise gehts mit dieser abfrage!
Zähl doch die Zeilenumbrüche und alles, was nach dem ersten Umbruch kommt, schreibst du dann halt in ne temporäre datei, löscht den inhalt der "alten" und schreibst den aus der temporären wieder hinein! Oder ist das zu kompliziert?!
Addieren wird schwierig, da wie gesagt die Zahl rein zufällig ist. Somit weiß ich ja den Betrag nicht, der dazu addiert werden muss.
Mit AND funktioniert es!
Danke für die Hilfe!
Christoph R. schrieb:
std::ofstream ofs(".\\data.txt);
komischer dateiname
Aber da steht irgendwas anderes in der Datei, nicht der Wert von der Variablen. Ich nehme an, dass ofstream eher für Zeichenketten gedacht ist.
da sollte eigentlich (als Zeichenkette) "123" in der Datei stehen.
Willst du den Wert 123 binär in die Datei schreiben, müsstest du das so machen:
char c = 123;
ofs.write(&c, 1);
ps: falsches Forum, gehört nach C++
Etwas, das sich im großen und ganzen wie std::vector<T> verhält (also im Wesentllichen konstante Zugriffszeiten und die Fähigkeit den Speicher bequem zu vergrößern [push_back usw]) gibt es natürlich auch in C. Üblich sind eben Zeiger und realloc.
Und ja, es gibt einige C-Bibliotheken, die ähnliche Ziele wie die STL verfolgen -- Du kannst Dir ja mal die glib (von GTK) angucken.
man könnte auch entweder den speicher immer wieder mit realloc erweitern (ist aber recht unschön, da es dann zu häufig benutzt werden muss)
oder man geht die datei zwei mal durch und schaut beim ersten durchlauf nach leerzeichen und zeilenvorschüben.
/bin/bash0R schrieb:
ganz recht, die l337 kiddies sind im anmarsch und werden bald deinen rechner infiltriert haben.
@ThumbsDown Es gibt kein entkommen.
Vor C99 muss man die Variablen nur den Code deklarieren (innerhalb einer Funktion), d.h. for(int i ... ist vor C99 nicht gültig. Ab C99 darf man das, aber du musst deinen Compiler mitteilen, dass der nach c99 kompilieren muss.
Danke Leute, werd mir mal zu genüge führen, wegen dem selber ausdenken, bin noch weit am Anfang, da gibts noch nicht soo viel was man machen könnte, da ja noch viel Wissen fehlt, hab aber schon einiges gemacht.