Datei gliedern
-
Hallo
Falls pos NICHT NICHT gefunden wurde, dann
Einmal NICHT reicht.
Das mit size_t hab ich nocht nicht ganz verstanden...wäre ein int da nicht das selbe?
Nein ein int nicht. Es gibt keine negativen Positionsangaben in einem Array, nur positive und 0.
Ein unsigned int ist sowohl logisch als auch technisch äuqivalent. Deshalb ist size_t ja auch nur ein typedef, keine eigene Klasse/POD.bis bald
akari
-
Wieso != == Nicht
und npos == NICHT
Und ich will ja wissen, wann es gefunden wurde und nicht. wann Nicht gefunden...Funktionieren tuts jedenfalls nicht...Ich bekomme jedesmal die selbe Ausgabe
4294967295 geliefert...
-
Hallo
Ja richtig.
bis bald
akari
-
Dark_DanI schrieb:
Funktionieren tuts jedenfalls nicht...Ich bekomme jedesmal die selbe Ausgabe
4294967295 geliefert...string::npos == 4294967295
Also nichts gefunden.
Ths Code fängt den Fall aber ab.
Ich folgere: Du hast den Code nicht richtig kopiert.
-
Ich habs kopiert und halt den string mit nem buffer aus ner Datei gefüllt->
ifstream IN1("test.txt", ifstream::binary|ifstream::in);
IN1.seekg(0, ifstream::end);
int size = IN1.tellg();
IN1.seekg(0);
char buffer[size];
IN1.read(buffer, size);
string sbuffer = buffer;
char c = 0xEE;size_t pos = sbuffer.find(c);
if( pos != string::npos);
{
cout << "Position: " << pos;
}->Es kommt egal, wonach ich suche, immer das selbe Ergebnis. Und im Hex-Editor steht auch, dass solche Werte, wie ee enthalten sein müssten

EDIT:
Ich hab jetz ma ne neue Datei geschrieben, in der ich im Hex, dann ee eingegeben habe...>auf einmal findet er auch ne Position, mit der ich was anfangen kann. Bei meiner anderen Datei->wo ebenfalls ee`s drin vorkommen, findet er komischwerise nichts
EDIT2:
Habs endlich geschafft->habs aber anders gelöst.
ich hab ne for-Schleife, die den ganezen cstring einmal durchgeht und wenn eben i 0xee ist anschlägt>manchmal ist die Lösung vielleicht zu einfach um sie zu sehen. Trotzdem vielen dank
