file-read

___ answer9132238 ___

Ja.

Suchen Sie bis zum Ende die Position des Endes, das die Größe ist.

%Vor%

In C ++ hat der Stream die gleiche Funktionalität:

%Vor%     
___ answer9132220 ___

Sie können dies versuchen:

%Vor%

Dies gibt jedoch die Anzahl der Bytes in der Datei zurück, nicht die Anzahl der Zeichen . Es ist nicht dasselbe, es sei denn, die Codierung ist bekanntlich ein Byte pro Zeichen (z. B. ASCII).

Sie müssen die Datei an den Anfang zurückspulen, nachdem Sie die Größe gelernt haben:

%Vor%     
___ answer9132218 ___

Ich denke, Sie suchen wahrscheinlich nach einer dynamischen Speicherlösung . Was Sie tatsächlich gefragt haben, ist "Gibt es eine Möglichkeit, die Anzahl der Zeichen in einer Datei zu erhalten, ohne sie zu lesen?". Die Antwort (angenommen ein Byte pro Zeichen) ist ja, Sie können den %code% Aufruf verwenden, um die Dateigröße zu erhalten, und die Dateigröße in Bytes ist die Anzahl der Zeichen. Mit UTF-8 ist die Antwort nein, aber lassen wir das für den Moment beiseite, da gerade-lernende Informatiker sich normalerweise keine Gedanken über Internationalisierung machen.

Ich denke, der Grund, warum Sie wissen wollen, wie viele Zeichen es gibt, ist, dass Sie genügend Speicherplatz haben, um alle zu speichern. Sie müssen nicht wissen, wie groß die Datei ist, um das Ganze zu speichern.

Wenn Sie ein %code% haben, kann es anfangen, zehn Zeichen zu halten, dann wächst es, um zwanzig, dann zehntausend zu halten ... Und wenn Sie mit dem Lesen der Datei fertig sind, wird es sie alle sogar halten obwohl du nie wusstest, wie viele es sein würden.

    
___ tag123c ___ C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entworfen und behält eine ähnliche Syntax, ist aber jetzt eine komplett andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. ___ answer9132228 ___

Aus der Spitze meines Kopfes ist so ein Blick auf die Dateigröße und dividieren, die wie viele Bytes ein einzelnes Zeichen ist?

Beim Umgang mit Leerzeichen und Endzeilen treten Probleme auf.

    
___ answer9132253 ___

Die einfache Antwort lautet nein. Genauer gesagt ist es systemabhängig: unter Unix, ist es möglich (z. B. mit %code% ); unter Windows ist es nicht möglich für eine Textdatei, aber wenn Sie die Datei im Binärformat lesen, Es gibt eine Funktion %code% , die verwendet werden kann.

Obwohl nicht garantiert, unter allen Implementierungen, die ich kenne (für diese beiden Plattformen), bis zum Ende der Datei suchen, dann tun ein %code% , gibt etwas zurück, das bei ausreichender Konvertierung in a großer integraler Typ, wird die gleichen Ergebnisse wie oben (mit der gleiche Einschränkungen).

Schließlich: Warum brauchen Sie diese Informationen? Wenn es nur ein zuzuteilen ist Puffer mit der richtigen Größe, auch mit einer Textdatei, %code% (und %code% nach dem Suchen bis zum Ende) wird einen etwas größeren Wert zurückgeben als die Anzahl der Bytes, die Sie lesen können. Du wirst Puffer leicht sein überdimensioniert, aber das ist in der Regel kein Problem.

    
___ tag123fileio ___ Datei-E / A ist Eingabe / Ausgabe, die das Dateisystem betrifft. Dies kann Operationen an Verzeichnissen und Dateien umfassen, wie das Erstellen und Löschen von Dateien, das Lesen von Dateien und das Schreiben von Ausgaben in Dateien. ___ qstntxt ___

In einem Projekt muss ich eine Datei lesen, und ich muss mit der Anzahl der Zeichen in einer Datei arbeiten, und gibt es eine Möglichkeit, die Anzahl der Zeichen zu erhalten, ohne sie Zeichen für Zeichen zu lesen (sonst muss ich das tun) lese die Datei zweimal, einmal um die Anzahl der Zeichen zu finden.)

Ist es überhaupt möglich?

    
___ tag123file_read ___ hilf uns dieses Wiki zu bearbeiten ___ qstnhdr ___ So finden Sie die Anzahl der Zeichen in einer Datei, ohne den Inhalt zu durchlaufen ___
4
Antworten

Schnellstes Lesen von Dateien in einer Multithread-Anwendung

Ich muss eine 8192x8192 Matrix in den Speicher lesen. Ich möchte es so schnell wie möglich machen. Im Moment habe ich diese Struktur: %Vor% In der Funktion ParallelRead parse ich jede Zeile, mache atoi und bearbeite die Matrix. Die Pa...
20.05.2012, 19:02
3
Antworten

Zahlen als Strings lesen

Ich bin neu bei der R-Programmierung und möchte eine Textdatei in R. lesen. Eine der Spalten, sagen wir mal, Spalte 7 ist numerisch und jede Zahl stellt eine ID dar. Ich möchte, dass R die Zahlen liest, als wären sie Strings. Und zähle die Hä...
27.02.2013, 12:51
5
Antworten

So finden Sie die Anzahl der Zeichen in einer Datei, ohne den Inhalt zu durchlaufen

In einem Projekt muss ich eine Datei lesen, und ich muss mit der Anzahl der Zeichen in einer Datei arbeiten, und gibt es eine Möglichkeit, die Anzahl der Zeichen zu erhalten, ohne sie Zeichen für Zeichen zu lesen (sonst muss ich das tun) lese di...
03.02.2012, 16:42