Wie bestmmt man die Länge beim ifstream?
-
awl schrieb:
ich habe eine datei: 1625b6d
ich möchte mit datei.read(puffer,2) in den puffer 16 usw einlesen.
Mein Problem ist aber dass er immer nur ein zeichen liest .genau das macht doch mein struct OO
mir ist zwar auch noch immer nicht klar, wieso du das brauchst - aber falls du das weiterhin nicht sagen möchtest:struct two_chars { char a, b; }; std::istream& operator<< (std::istream &i, two_chars &these) { i >> these.a >> these.b; return i; } int main() { std::ifstream stream("datei.endung"); two_chars tmp; stream >> tmp; // tmp.a + tmp.b oder wie auch immer du die beiden zusammen interpretieren möchtest... }wie wärs damit: du sagst, _was_ du machen möchtest und _nicht_ nur wie...
und dann weiß hier bestimmt irgendjmd, wie man das machen kann - oder vor allem erst mal, was du möchtest^^bb
-
Das ist einfach nur eine übung für die schule.
wir müssen immer zwei zeichen einlesen und als dezimalzahl ausgeben.
bd1402 -> bd 14 02 -> 189 20 2
besser?
-
awl schrieb:
Das ist einfach nur eine übung für die schule.
wir müssen immer zwei zeichen einlesen und als dezimalzahl ausgeben.
bd1402 -> bd 14 02 -> 189 20 2
besser?
hmm...
#include <fstream> #include <iostream> #include <iomanip> struct two_chars { char content[2]; wchar_t reinterpret() const {return reinterpret_cast<wchar_t>(content);} }; std::istream& operator>> (std::istream &i, two_chars &these) { i >> these.content[0] >> these.content[1]; return i; } int main() { std::ifstream stream("datei.endung"); two_chars tmp; stream >> tmp; std::cout << std::hex << tmp.reinterpret(); }so in etwa?!
-
So kompliziert? Geht es nicht einfacher?

-
dochdoch:
char tmp[2]; std::ifstream stream("a.txt"); stream.read(tmp, 2); std::cout << std::hex << reinterpret_cast<unsigned short>(tmp);das hat aber allg. nicht viel mit standard-konformität zu tun - aber für das system, auf dem du arbeitest, geht es...
geht nat auch wieder noch toller - aber nicht mehr sehr viel kürzer^^ hab jz allerdings auch keine zeit mehr, dir noch paar andere lösungen zu präsentieren - und da du nicht mal ansatzweise sagst, was du kannst und wie du es machen würdest und ca. 0 quellcode zeigst, gibts auch keinen grund, sich die zeit zu nehmen!
bb
-
awl schrieb:
So kompliziert? Geht es nicht einfacher?

Klar. aber du zeigst keinerlei Initiative, zeigst keinerlei Ansatz deinerseits und du sagst ganz klar, dass es sich um Hausaufgaben handelt. Das demotiviert Leute die dir antworten könnten.
-
Ich habe das so gemacht, aber der liest trotzdem nur ein zeichen ein. Das ist ja mein Problem.
stringstream s;
datei.read(puffer,2);
s.write(puffer,2);
s >>hex >>zahl;Es ist ja nicht so dass ich nichts gemacht habe.
-
Das funktioniert acuh nicht. Hat es vielleicht damit zu tun, dass ich im Unicode arbeite? Ist es da vielleicht anders?
Sitze schon den ganzen Tag dran, hab schon so viele möglcihkeiten ausprobiert, aber der will mir einfach nicht 2 zeichen einlesen.
-
awl schrieb:
Das funktioniert acuh nicht. Hat es vielleicht damit zu tun, dass ich im Unicode arbeite? Ist es da vielleicht anders?
Sitze schon den ganzen Tag dran, hab schon so viele möglcihkeiten ausprobiert, aber der will mir einfach nicht 2 zeichen einlesen.zeig doch endlich mal _deinen_ ansatz...
-
An alle ein großes Dankeschön!
Habs hingekriegt
-
