Gibt es einen Unterschied zwischen ios_base::out und ios::out, ios_base::in und ios::in, ios_base::app und ios::app usw.?

Mittwochabend, 2. August 2023

Heute habe ich diese beiden Codezeilen gesehen:

std::ofstream file("example.txt", std::ios_base::out);

std::ofstream file("example.txt", std::ios::out);

Dies warf bei mir einige Fragen auf:

Warum verwende ich manchmal ios_base::out und manchmal ios::out?

Gibt es einen Unterschied zwischen ios_base::out und ios::out?

Es hat ein oder zwei Stunden gedauert, bis ich es herausgefunden habe....


Inhaltsverzeichnis


abschließend

Es gibt keinen Unterschied zwischen ios_base::out und ios::out, sie sind genau gleich.

Da sie alle ganzzahlige Konstanten sind und die gleichen Werte haben, können sie sich gegenseitig vollständig ersetzen.

Was die Frage angeht, wann Sie welches verwenden sollten, verwenden Sie meiner Meinung nach das, was Ihnen gefällt, da sie wirklich gleich sind.

Was sind die I/O-Flusskontrollflags der ios_base-Klasse?

  • std::ios_base::in: Eingabemodus, der angibt, dass der Stream im Lesemodus geöffnet ist.
  • std::ios_base::out: Ausgabemodus.
  • std::ios_base::app: Anhängemodus, was bedeutet, dass der Stream im Schreibmodus geöffnet wird und Daten an das Ende der Datei angehängt werden, ohne den ursprünglichen Inhalt zu löschen.
  • std::ios_base::trunc: Truncate-Modus, was bedeutet, dass der Stream im Schreibmodus geöffnet und der ursprüngliche Inhalt der Datei gelöscht wird.
  • std::ios_base::binary: Binärmodus, öffnen Sie den Stream im Binärmodus.
  • std::ios_base::ate: Positionieren Sie den Dateizeiger nach dem Öffnen des Streams am Ende der Datei.

Was sind die I/O-Flusskontrollflags der iOS-Klasse?

  • std::ios::in: Eingabemodus, der angibt, dass der Stream im Lesemodus geöffnet ist.
  • std::ios::out: Ausgabemodus.
  • std::ios::app: Anhängemodus, was bedeutet, dass der Stream im Schreibmodus geöffnet wird und Daten an das Ende der Datei angehängt werden, ohne den ursprünglichen Inhalt zu löschen.
  • std::ios::trunc: Truncate-Modus, was bedeutet, dass der Stream im Schreibmodus geöffnet und der ursprüngliche Inhalt der Datei gelöscht wird.
  • std::ios::binary: Binärmodus, öffnen Sie den Stream im Binärmodus.
  • std::ios::ate: Positionieren Sie den Dateizeiger nach dem Öffnen des Streams am Ende der Datei.

beweisen, dass sie gleich sind

#include<iostream>
#include<fstream>


int main(){
	printf("ios_base::in的值:%d\n",std::ios_base::in);
	printf("ios::in的值:%d\n",std::ios::in);
	printf("-------------\n");
	
	printf("ios_base::out的值:%d\n",std::ios_base::out);
	printf("ios::out的值:%d\n",std::ios::out);
	printf("-------------\n");
	
	printf("ios_base::app的值:%d\n",std::ios_base::app);
	printf("ios::app的值:%d\n",std::ios::app);
	printf("-------------\n");
	
	printf("ios_base::trunc的值:%d\n",std::ios_base::trunc);
	printf("ios::trunc的值:%d\n",std::ios::trunc);
	printf("-------------\n");
	
	printf("ios_base::binary的值:%d\n",std::ios_base::binary);
	printf("ios::binary的值:%d\n",std::ios::binary);
	printf("-------------\n");
	
	printf("ios_base::ate的值:%d\n",std::ios_base::ate);
	printf("ios::ate的值:%d\n",std::ios::ate);
	printf("-------------\n");
	
	
}

 

Supongo que te gusta

Origin blog.csdn.net/m0_61629312/article/details/132073083
Recomendado
Clasificación