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
- Quels sont les indicateurs de contrôle de flux d'E/S de la classe ios_base ?
- Quels sont les indicateurs de contrôle de flux d’E/S de la classe iOS ?
- prouver qu'ils sont pareils
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");
}