In C++ ist die Verarbeitung von Textdateien sehr wichtig, da die meisten Programme Eingaben und Ausgaben mit externen Dateien durchführen müssen, z. B. das Lesen von auf der Festplatte gespeicherten Datendateien oder das Speichern von Daten innerhalb des Programms in Dateien. Daher wird in diesem Artikel erläutert, wie Textdateien für die Eingabe und Ausgabe in C++ verwendet werden.
1. Öffnen und Schließen von Textdateien
In C++ müssen Sie ein Dateistream-Klassenobjekt (fstream) verwenden, um Dateien zu lesen und zu schreiben. Bevor Sie eine Datei verwenden, müssen Sie ein Dateistreamobjekt erstellen und es der Datei zuordnen. Der Konstruktor eines Dateistreamobjekts kann den Dateinamen und die Öffnungsmethode als Parameter akzeptieren. In C++ gibt es drei gängige Methoden zum Öffnen von Dateien:
Hier ist ein einfaches Beispiel, das zeigt, wie eine Datei geöffnet wird:
#include <fstream> using namespace std; int main() { // 创建文件流对象并关联文件 fstream file("example.txt", ios::in | ios::out); // 判断文件是否打开成功 if (!file) { cout << "无法打开文件" << endl; return -1; } // 文件操作 // 关闭文件 file.close(); return 0; }
Im obigen Code wird ein Dateistream-Objekt mit dem Namen file durch den Konstruktor der fstream-Klasse erstellt und der Datei example.txt zugeordnet. Die Datei wird so geöffnet, dass sie sowohl lesbar als auch beschreibbar ist. Mit anderen Worten: Wenn Sie eine Datei lesen müssen, müssen Sie die Option ios::in verwenden; wenn Sie eine Datei schreiben müssen, müssen Sie die Option ios::out verwenden, wenn Sie Inhalte hinzufügen müssen Am Ende der Datei müssen Sie ios ::appoptions verwenden. Der Einfachheit halber werden hier sowohl lesbare als auch beschreibbare Methoden verwendet.
Nachdem der Dateivorgang abgeschlossen ist, muss die Datei geschlossen werden. Dies kann durch die Funktion close() des Dateistreamobjekts erreicht werden.
2. Daten aus der Datei lesen
Nach dem Öffnen der Textdatei können wir das Dateieingabe-Stream-Objekt (ifstream) verwenden, um Daten aus der Textdatei zu lesen. C++ bietet eine Vielzahl von Methoden zum Lesen von Daten aus Dateien, darunter die folgenden:
Operator: Lesen Sie ein Wort oder einen Wert aus der Datei.
Hier ist ein einfaches Beispiel, das zeigt, wie man Daten aus einer Datei liest:
#include <fstream> #include <iostream> using namespace std; int main() { // 创建文件流对象并关联文件 ifstream file("example.txt"); // 判断文件是否打开成功 if (!file) { cout << "无法打开文件" << endl; return -1; } // 读取文件内容 string str; while (getline(file, str)) { cout << str << endl; } // 关闭文件 file.close(); return 0; }
Im obigen Code erstellen wir ein Eingabedatei-Stream-Objekt mit dem Namen „file“ und verknüpfen es mit der Datei „example.txt“. In der while-Schleife wird der Dateiinhalt Zeile für Zeile durch Aufrufen der Funktion getline() gelesen und jede Datenzeile in der String-Variablen str gespeichert. Abschließend wird der gelesene Inhalt über cout ausgegeben.
3. Daten in eine Datei schreiben
In C++ können Sie das Dateiausgabe-Stream-Objekt (ofstream) verwenden, um Daten in eine Textdatei zu schreiben. Zu den häufig verwendeten Schreibfunktionen gehören die folgenden:
Hier ist ein einfaches Beispiel, das zeigt, wie man Daten in eine Datei schreibt:
#include <fstream> #include <iostream> using namespace std; int main() { // 创建文件流对象并关联文件 ofstream file("example.txt"); // 判断文件是否打开成功 if (!file) { cout << "无法打开文件" << endl; return -1; } // 向文件中写入数据 for (int i = 1; i <= 10; i++) { file << "This is line " << i << endl; } // 关闭文件 file.close(); return 0; }
Im obigen Code erstellen wir ein Ausgabedatei-Stream-Objekt mit dem Namen „file“ und verknüpfen es mit der Datei „example.txt“. In der for-Schleife werden Daten über den Operator << in die Datei geschrieben. Jede Schleife schreibt eine Zeile mit Textdaten und schließlich wird die Datei über die Funktion close() geschlossen.
4. Dateizeiger
Beim Ausführen von Dateivorgängen müssen Sie einen Zeiger verwenden, um den aktuellen Lese- und Schreibspeicherort der Datei anzugeben. Der Dateizeiger, oft auch Dateipositionsindikator genannt, ist eine interne Variable, die von jeder Datei verwaltet wird und die Anzahl der Bytes vom Anfang der Datei bis zur aktuellen Position aufzeichnet.
C++ bietet die folgenden Funktionen zum Bedienen von Dateizeigern:
Hier ist ein einfaches Beispiel, das zeigt, wie man einen Dateizeiger manipuliert:
#include <fstream> #include <iostream> using namespace std; int main() { // 创建文件流对象并关联文件 fstream file("example.txt", ios::in | ios::out); // 判断文件是否打开成功 if (!file) { cout << "无法打开文件" << endl; return -1; } // 获取、设置文件指针位置 file.seekp(6); // 将文件写位置设置为6 file.put('X'); // 在文件位置6处写入字符'X' file.seekg(0); // 将文件读位置设置为0 char ch = file.get(); // 从文件位置0读取一个字符 cout << "第一个字符是:" << ch << endl; // 关闭文件 file.close(); return 0; }
Im obigen Code erstellen wir ein Dateistream-Objekt mit dem Namen file und verknüpfen es mit der Datei example.txt. Bevor Sie den Dateizeiger manipulieren, muss die Datei geöffnet werden.
Im Beispiel haben wir die Funktion seep() verwendet, um die Dateizeigerposition auf 6 zu setzen, und dann die Funktion put() verwendet, um das Zeichen „X“ an Dateiposition 6 zu schreiben. Als nächstes verwenden Sie die Funktion „seegg()“, um die Dateizeigerposition auf 0 zu setzen, verwenden Sie die Funktion „get()“, um ein Zeichen von der Dateiposition 0 zu lesen und es auszugeben.
5. Zusammenfassung
Die oben genannten sind die grundlegenden Vorgänge der Eingabe und Ausgabe von Textdateien mit C++. Beim Ausführen von Dateivorgängen müssen Sie auf die Reihenfolge achten, in der Dateien geöffnet und geschlossen werden, sowie auf die Position des Dateizeigers. Das Lesen und Schreiben von Textdateien, die Zeigerpositionierung und andere Vorgänge sind sehr einfach, Sie müssen jedoch die häufig verwendeten Funktionen und Vorgänge im Auge behalten.
Das obige ist der detaillierte Inhalt vonVerwendung von Textdateien für die Ein- und Ausgabe in C++. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!