uneinlesbare Zeichen
-
Das sind alles Fragen die mit C++ nichts zu tun haben. Geh auf die Seite von Texas Instruments und sieh dich dort mal um, da gibts sicher nen Bereich für Entwickler.
-
charlie schrieb:
Aber noch eine Frage, wie mir scheint, wird jede Zeile mit einer binären Null abgeschlossen (im Rechner), woher weiß ich dann, wie weit ich lesen darf?
einlesen mit fstream::readsome() (der Rückgabewert sagt dir, wieviele Elemente tatsächlich gelesen wurden) oder zeichenweise einlesen bis zum EOF (und mitzählen).
-
Tut mir leid, readsome kenn ich nicht.
Auf der TI Seite find ich nichts, außer dass das absicht ist, dass es keinen Programmeditor gibt (Schummelnde Studenten...)Könntest du mir mal eine Funktion mit readsome zeigen?
Übrigens bin ich draufgekommen, dass das Zeichen, dass das Einlesen stoppt beim händischen Kopieren des Textes nicht übernommen wird.
Danke!
-
ist noch wer da???
Bin so alleine...
-
Nur soviel: Wenn Du binär liest gibt es kein Trennzeichen, die \0 ist ein Zeichen wie jedes andere auch. Dem Lesebefehl ist auch egal ob da vorne ne \0 steht, in der Mitte oder am Ende, wenn es 100 Zeichen zu lesen gibt, gibt er Dir 100 Zeichen. (Gerne auch 100 mal \0)
-
Eine Ergänzung noch: Kann es sein dass der nach X Zeichen abbricht weil die serielle Schnittstelle aufgrund ihres Tempos erst X Zeichen liefern konnte?
-
Hallo!
Nein, das nicht, denn ich habe die .83p Datei auf meinem PC gespeichert.
Wenn ich irgendeine andere Textdatei lese, gehts komplett.Und wie meinst du das von wegen binär einlesen?
Ich habs halt mit nur_ein_test.read(...) gemacht, da gehts auch nicht.Aber irgendwie muss es ja möglich sein diese Datei vollkommen zu lesen oder? Im Editor kann man ja auch alles sehen...
Trotzdem Danke!
-
Aber irgendwie muss es ja möglich sein diese Datei vollkommen zu lesen oder? Im Editor kann man ja auch alles sehen...
Ich bin mir ziemlich sicher, daß die Datei vollständig gelesen wird. Lediglich der Befehl "cout<<buffer;", mit dem du das kontrollieren willst, bricht beim ersten '\0'-Zeichen im Puffer mit der Ausgabe ab.
@readsome: Ich weiß nicht genau, ob readsome() zum ANSI-Standard gehört(*) oder eine MS-Erweiterung ist, aber mit [url=http://www.cppreference.com/cppio/gcount.html]gcount()] kannst du feststellen, wieviele Zeichen read() wirklich eingelesen hat:
//a - Berechnung mit gcount() ifstream fin("daten.83p"); fin.read(buffer,buflen); int inlen=fin.gcount(); for(int i=0;i<inlen;++i) cout<<buffer[i];//b - readsome() ifstream fin("daten.83p"); int inlen=fin.readsome(buffer,buflen); for(int i=0;i<inlen;++i) cout<<buffer[i];* cppreference.com erwähnt es nicht, in der MSDN steht sinngemäß drin, daß es maximal n Zeichen liest und die Anzahl tatsächlich gelesener Zeichen zurückgibt.
PS: Was das Dateiformat angeht: ohne konkrete Informationen vom Hersteller bleibt dir nur eins - raten

-
Danke!

Ich werds gleich versuchen.
-
Naja, jetzt geb ichs auf

Es werden wirklich nur die paar Zeichen eingelesen...
egal.Trotzdem Danke
__charlie__