Heim Backend-Entwicklung C++ Dateistreams in C++ verstehen

Dateistreams in C++ verstehen

Aug 21, 2023 pm 11:15 PM
c++ 文件流 文件处理

Der Dateistream in C++ ist eine praktische Methode zur Dateneingabe und -ausgabe. Daten in der Datei können über den Dateistream gelesen und geschrieben werden. In C++ umfassen Dateistreams hauptsächlich die iostream-Bibliothek und die fstream-Bibliothek.

Die iostream-Bibliothek ist hauptsächlich für die Konsoleneingabe und -ausgabe verantwortlich, während die fstream-Bibliothek für die Dateieingabe und -ausgabe verantwortlich ist. Die fstream-Bibliothek ist in der iostream-Bibliothek enthalten, daher müssen wir nur eine der Header-Dateien <iostream> einbinden.

In C++ müssen Sie ein Stream-Objekt verwenden, um eine Datei zu bedienen. Ein Datei-Stream ist ein Stream-Objekt, das einer Datei zugeordnet ist. Über das Datei-Stream-Objekt können Sie Daten in die Datei lesen oder schreiben. Es gibt zwei Arten von Dateistreams: Lesedateistreams (ifstream) und Schreibdateistreams (ofstream), die beide vom Basisdateistream (fstream) abgeleitet sind.

Es ist zu beachten, dass die Datei zuerst geöffnet werden muss, wenn Sie Lese- und Schreibvorgänge für Dateiströme durchführen möchten. Dateien können mit der Funktion open() geöffnet werden. Im Allgemeinen müssen wir nach erfolgreichem Öffnen der Datei einen Lese- oder Schreibvorgang ausführen. Nach Abschluss des Vorgangs müssen wir die Funktion close () verwenden, um das Dateistream-Objekt zu schließen.

Als nächstes werfen wir einen Blick auf einige gängige Vorgänge von Dateistreams:

  1. Dateien öffnen

In C++ gibt es zwei Möglichkeiten, Dateien zu öffnen: Eine besteht darin, das fstream-Bibliotheksobjekt zu verwenden, und die andere darin C-Sprachfunktionsbibliothek.

Verwenden Sie die fstream-Bibliothek:

#include &lt;fstream&gt;
using namespace std;

int main() {
  ofstream fileOut; //写入文件流对象
  fileOut.open(&quot;test.txt&quot;); //以写模式打开文件
  fileOut.close(); //关闭文件
  ifstream fileIn; //读取文件流对象
  fileIn.open(&quot;test.txt&quot;); //以读模式打开文件
  fileIn.close(); //关闭文件
  return 0;
}
Nach dem Login kopieren

Verwenden Sie die C-Funktionsbibliothek:

#include &lt;stdio.h&gt;

int main() {
  FILE* fp; //文件指针
  fp = fopen(&quot;test.txt&quot;, &quot;w&quot;); //以写模式打开文件
  fclose(fp); //关闭文件
  fp = fopen(&quot;test.txt&quot;, &quot;r&quot;); //以读模式打开文件
  fclose(fp); //关闭文件
  return 0;
}
Nach dem Login kopieren
  1. Dateien schreiben

Verwenden Sie Objekte der ofstream-Klasse, um Daten in Dateien zu schreiben. Mit dem Operator „<<“ können Daten geschrieben werden. Beim Schreiben können Sie links oder rechts vom Operator Zeichenfolgen, Zeichen, Werte oder Variablen hinzufügen.

#include &lt;fstream&gt;
using namespace std;

int main() {
  ofstream fileOut; //写入文件流对象
  fileOut.open(&quot;test.txt&quot;); //打开文件
  if (fileOut.is_open()) { //判断文件是否成功打开
    fileOut &lt;&lt; &quot;Hello world&quot;; //写入数据
    fileOut.close(); //关闭文件
    return 0;
  } else {
    return -1;
  }
}
Nach dem Login kopieren
  1. Dateien lesen

Verwenden Sie Objekte der ifstream-Klasse, um Daten aus Dateien zu lesen. Der Operator „<<“ kann auch zum Lesen von Daten verwendet werden. Beim Lesen können die Daten in definierte Variablen eingelesen werden.

#include &lt;fstream&gt;
#include &lt;iostream&gt;
using namespace std;

int main() {
  ifstream fileIn; //读取文件流对象
  fileIn.open(&quot;test.txt&quot;); //打开文件
  if (fileIn.is_open()) {
    char ch; //定义变量用来存放读取的字符
    while (fileIn &gt;&gt; ch) { //逐个读取字符
      cout &lt;&lt; ch; //输出读取的字符
    }
    fileIn.close(); //关闭文件
    return 0;
  } else {
    return -1;
  }
}
Nach dem Login kopieren

Das Obige ist das Grundwissen über Dateistreams in C++. Durch die Lese- und Schreibvorgänge des Dateistreams können wir die Daten in der Datei bequemer verarbeiten, um den tatsächlichen Programmieranforderungen gerecht zu werden.

Das obige ist der detaillierte Inhalt vonDateistreams in C++ verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Parallelitätssicheres Design von Datenstrukturen in der C++-Parallelprogrammierung? Parallelitätssicheres Design von Datenstrukturen in der C++-Parallelprogrammierung? Jun 05, 2024 am 11:00 AM

Parallelitätssicheres Design von Datenstrukturen in der C++-Parallelprogrammierung?

Wie implementiert man einen benutzerdefinierten Komparator in C++ STL? Wie implementiert man einen benutzerdefinierten Komparator in C++ STL? Jun 05, 2024 am 11:50 AM

Wie implementiert man einen benutzerdefinierten Komparator in C++ STL?

Das C++-Objektlayout ist auf den Speicher abgestimmt, um die Effizienz der Speichernutzung zu optimieren Das C++-Objektlayout ist auf den Speicher abgestimmt, um die Effizienz der Speichernutzung zu optimieren Jun 05, 2024 pm 01:02 PM

Das C++-Objektlayout ist auf den Speicher abgestimmt, um die Effizienz der Speichernutzung zu optimieren

Wie implementiert man das Strategy Design Pattern in C++? Wie implementiert man das Strategy Design Pattern in C++? Jun 06, 2024 pm 04:16 PM

Wie implementiert man das Strategy Design Pattern in C++?

Ähnlichkeiten und Unterschiede zwischen Golang und C++ Ähnlichkeiten und Unterschiede zwischen Golang und C++ Jun 05, 2024 pm 06:12 PM

Ähnlichkeiten und Unterschiede zwischen Golang und C++

Wie kopiere ich einen C++-STL-Container? Wie kopiere ich einen C++-STL-Container? Jun 05, 2024 am 11:51 AM

Wie kopiere ich einen C++-STL-Container?

Wie implementiert man C++-Multithread-Programmierung basierend auf dem Actor-Modell? Wie implementiert man C++-Multithread-Programmierung basierend auf dem Actor-Modell? Jun 05, 2024 am 11:49 AM

Wie implementiert man C++-Multithread-Programmierung basierend auf dem Actor-Modell?

Was sind die zugrunde liegenden Implementierungsprinzipien von C++-Smartpointern? Was sind die zugrunde liegenden Implementierungsprinzipien von C++-Smartpointern? Jun 05, 2024 pm 01:17 PM

Was sind die zugrunde liegenden Implementierungsprinzipien von C++-Smartpointern?

See all articles