Y a-t-il une différence entre ios_base :: out et ios :: out, ios_base :: in et ios :: in, ios_base :: app et ios :: app, etc. ?

Mercredi soir 2 août 2023

Aujourd'hui, j'ai vu ces deux lignes de code :

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

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

Cela m'a posé quelques questions :

Pourquoi est-ce que j'utilise parfois ios_base :: out et parfois ios :: out ?

Y a-t-il une différence entre ios_base :: out et ios :: out ?

Il m'a fallu une heure ou deux pour comprendre....


Table des matières


en conclusion

Il n'y a aucune différence entre ios_base :: out et ios :: out, ils sont exactement les mêmes.

Comme ce sont toutes des constantes entières et qu’elles ont les mêmes valeurs, elles peuvent se remplacer complètement.

Quant à savoir quand utiliser lequel, je pense utiliser celui que vous préférez car ce sont vraiment les mêmes.

Quels sont les indicateurs de contrôle de flux d'E/S de la classe ios_base ?

  • std::ios_base::in: Mode saisie, indiquant que le flux est ouvert en mode lecture.
  • std::ios_base::out: Mode de sortie.
  • std::ios_base::app: Mode Ajout, ce qui signifie ouvrir le flux en mode écriture et ajouter des données à la fin du fichier sans effacer le contenu original.
  • std::ios_base::trunc: Mode tronqué, ce qui signifie ouvrir le flux en mode écriture et effacer le contenu original du fichier.
  • std::ios_base::binary: Mode binaire, ouvre le flux en mode binaire.
  • std::ios_base::ate: Positionnez le pointeur de fichier à la fin du fichier après avoir ouvert le flux.

Quels sont les indicateurs de contrôle de flux d’E/S de la classe iOS ?

  • std::ios::in: Mode saisie, indiquant que le flux est ouvert en mode lecture.
  • std::ios::out: Mode de sortie.
  • std::ios::app: Mode Ajout, ce qui signifie ouvrir le flux en mode écriture et ajouter des données à la fin du fichier sans effacer le contenu original.
  • std::ios::trunc: Mode tronqué, ce qui signifie ouvrir le flux en mode écriture et effacer le contenu original du fichier.
  • std::ios::binary: Mode binaire, ouvre le flux en mode binaire.
  • std::ios::ate: Positionnez le pointeur de fichier à la fin du fichier après avoir ouvert le flux.

prouver qu'ils sont pareils

#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");
	
	
}

 

Je suppose que tu aimes

Origine blog.csdn.net/m0_61629312/article/details/132073083
conseillé
Classement