Accueil Finances personnelles En signalant les indicateurs ios en C ++ - dummies

En signalant les indicateurs ios en C ++ - dummies

Vidéo: Loneliness 2025

Vidéo: Loneliness 2025
Anonim

Lorsque vous ouvrez un fichier en construisant une instance ofstream ou ifstream, vous pouvez modifier la façon dont le fichier s'ouvrira en fournissant ce qu'on appelle des flags. En termes informatiques, un indicateur est simplement un petit élément dont la présence ou le manque de présence indique à une fonction comment faire quelque chose. Avec les classes ofstream et ifstream, la fonction en question est le constructeur.

Un indicateur ressemble à l'application ios:: si vous utilisez un compilateur qui n'est pas entièrement compatible ANSI ou qui ressemble à l'app ios_base:: si vous en utilisez un qui est entièrement compatible ANSI. Cet indicateur particulier signifie que vous voulez écrire dans un fichier, mais vous souhaitez ajouter à toutes les données existantes qui peuvent déjà être dans un fichier. Vous fournissez ce drapeau en tant qu'argument du constructeur pour ofstream, comme dans l'un des exemples suivants:

outstream du fichier ("AppendableFile.txt", ios:: app); outstream du fichier ("AppendableFile. txt", ios_base:: app);

Vous pouvez voir que l'indicateur est ajouté en tant que deuxième paramètre au constructeur. D'autres indicateurs existent en plus de l'application, et vous pouvez les combiner en utilisant l'opérateur ou, | Par exemple, un drapeau est ios:: nocreate (qui n'est pas inclus dans les nouveaux compilateurs).

Celui-ci signifie "ouvrir seulement le fichier s'il existe déjà. "C'est-à-dire, ne créez pas le fichier s'il n'existe pas. (Souvenez-vous, ofstream crée un fichier s'il n'existe pas déjà.) Si le fichier n'existe pas, l'ouverture échouera et, lorsque vous appellerez échouer, vous obtiendrez un vrai .

Le drapeau ios:: nocreate est pratique avec ios:: app. Ensemble, ils signifient ouvrir un fichier existant et y ajouter . Autrement dit, les deux ensemble ne fonctionneront que si le fichier existe déjà et l'appel ouvrira le fichier pour une opération d'ajout. Si le fichier n'existe pas déjà, le fichier ne sera pas créé. Voici un exemple d'appel:

ofstream outfile ("… / MyFile.txt", ios:: app | ios:: nocreate); if (outfile. fail ()) {cout << "n'a pas pu ouvrir le fichier!" << endl; return 0;} outfile << "salut" << endl; fichier sortant. Fermer();

Si MyFile. txt n'existe pas lorsque vous exécutez ce code, vous obtenez le message Impossible d'ouvrir le fichier! Mais si MyFile. txt existe, l'application l'ouvre, y ajoute la chaîne Hi et enfin la ferme.

Il s'avère que le drapeau nocreate n'est pas disponible dans la nouvelle bibliothèque standard. Bummer. Par conséquent, le code ne fonctionne que si vous utilisez une version antérieure de la bibliothèque. Lorsque vous utilisez le compilateur Code:: Blocks, vous voyez le message d'erreur suivant:

erreur: 'nocreate' n'est pas membre de '; std:: ios '

Cependant, vous voudrez tester si votre compilateur comprend une bibliothèque qui supporte ios:: nocreate.Votre compilateur peut le supporter de toute façon, même s'il inclut la nouvelle bibliothèque standard. Comme alternative à ios:: nocreate, vous pouvez utiliser le code suivant (trouvé dans l'exemple FileOutput02):

ifstream infile ("… / MyFile.txt"); if (infile. fail ()) {cout << "impossible d'ouvrir le fichier!" << endl; return 0;} infile. Fermer(); outstream du fichier ("… / MyFile.txt", ios:: app); outfile << << hi >> << endl; fichier sortant. Fermer();

Dans ce cas, vous commencez par essayer d'ouvrir le fichier pour le lire. Si le fichier n'existe pas, vous ne pouvez pas le lire et le code se termine avec un message d'échec. Si le code peut lire dans le fichier, il rouvre le fichier en écriture. C'est une solution de contournement lourde, mais cela fonctionne.

Voici une liste des drapeaux disponibles. Tout d'abord, voici ceux pour ios, dans le cas où vous utilisez un compilateur qui n'est pas complètement conforme à ANSI:

  • ios:: app: Ce drapeau signifie que vous voulez ouvrir un fichier et y ajouter.

  • ios:: in: Incluez ce drapeau si vous voulez lire dans un fichier.

  • ios:: out : Incluez ce drapeau si vous voulez écrire dans un fichier.

  • ios:: trunc : Incluez ce drapeau si vous voulez effacer le contenu du fichier avant de l'écrire. C'est le contraire de append, et c'est aussi le défaut si vous n'incluez pas spécifiquement ios:: app.

  • ios:: nocreate : Utilisez ce drapeau si vous voulez vous assurer que le fichier ne sera pas créé s'il n'existe pas, ce qui empêchera l'ouverture du fichier.

  • ios:: noreplace : Ce drapeau est l'opposé de nocreate. Utilisez ce drapeau si vous voulez seulement créer un nouveau fichier. Si vous utilisez ce drapeau et que le fichier existe déjà, le fichier ne s'ouvrira pas, et cet échec retournera true .

Les compilateurs compatibles ANSI ne supportent pas non plus l'indicateur ios:: noreplace. Dans ce cas, vous pouvez utiliser l'opposé du correctif pour l'indicateur ios: nocreate, comme indiqué ici (et trouvé dans l'exemple FileOutput03): ifstream infile ("… / MyFile.txt"); if (! infile. fail ()) {cout << "le fichier existe déjà!" << endl; return 0;} infile. Fermer(); fichier sortant ofstream ("… / MyFile.txt"); outfile << << hi >> << endl; fichier sortant. Fermer();

Dans ce cas, le code tente d'ouvrir le fichier à lire. Si le fichier existe, le code affiche un message d'erreur et se termine. Sinon, le code crée un nouveau fichier et y écrit.

Les drapeaux suivants sont disponibles dans un compilateur totalement compatible ANSI!

ios:: ate: Utilise ce drapeau pour aller à la fin du fichier après l'avoir ouvert. Normalement, vous utilisez cet indicateur lorsque vous souhaitez ajouter des données au fichier.
  • ios_base:: binary: Utilisez cet indicateur pour indiquer que le fichier que vous ouvrez contient des données binaires, c'est-à-dire des données qui ne représentent pas les chaînes de caractères.

  • ios_base:: in: Spécifie cet indicateur lorsque vous voulez lire un fichier.

  • ios_base:: out: Inclut ce drapeau quand tu veux écrire dans un fichier.
  • ios_base:: trunc: Incluez ce drapeau si vous voulez effacer le contenu d'un fichier avant de lui écrire.

  • ios_base:: app: Incluez ce drapeau si vous souhaitez ajouter au fichier. C'est le contraire de trunc - c'est-à-dire, l'information qui est déjà dans le fichier quand vous l'ouvrez restera là.

Pourquoi avez-vous besoin d'un drapeau et d'un drapeau? Il semble que l'ordinateur devrait savoir si vous écrivez dans un fichier ou en lisez, selon (respectivement) si vous utilisez ofstream ou ifstream. La réponse à la raison pour laquelle vous avez un drapeau en drapeau et un drapeau en dehors est que d'autres classes sont disponibles en plus d'ofstream et d'ifstream.

Les compilateurs qui ne supportent pas encore entièrement la norme ANSI ont une classe générique dans leurs bibliothèques appelée fstream. Les compilateurs compatibles ANSI ont dans leurs bibliothèques une classe modèle appelée basic_filebuf et une classe appelée filebuf. Si vous utilisez ces classes, vous pouvez utiliser les indicateurs d'entrée et de sortie.

En signalant les indicateurs ios en C ++ - dummies

Le choix des éditeurs

Découvrir les Méditations de Pleine Conscience Formelle - les nuls

Découvrir les Méditations de Pleine Conscience Formelle - les nuls

Pour approfondir votre conscience consciente, vous devez pratiquer une méditation de pleine conscience sur une base quotidienne. Familiarisez-vous avec certaines des médiations suivantes. Avec le temps, vous deviendrez plus conscient de votre vie quotidienne. Body Meditation Meditation - Cette méditation implique de passer environ une demi-heure, en prenant conscience de ...

Démystifier Dan Brown: Les Templiers Royaux - les nuls

Démystifier Dan Brown: Les Templiers Royaux - les nuls

Les Templiers sont presque aussi fictifs dans Dan Brown Le code Da Vinci comme les chevaliers Jedi sont dans Star Wars. Bien que le héros Robert Langdon hésite d'abord à élever les Templiers dans ses cours, parce que la mention même d'eux fait ressortir les amants du complot, Brown n'a aucun problème à les faire participer ...

Démystification des mythes communs sur la franc-maçonnerie - mannequins

Démystification des mythes communs sur la franc-maçonnerie - mannequins

La franc-maçonnerie moderne existe depuis 1717. Les premières contre-vérités concoctées sur l'Ordre sont apparues en impression à peu près en même temps. Les États-Unis étaient consumés par l'hystérie anti-maçonnique à la fin des années 1820, et l'Europe a fait de Mason-bashing un sport populaire pendant deux siècles, le liant souvent à la propagande antisémite. Internet n'a que ...

Le choix des éditeurs

À L'aide de la boîte de dialogue Configurer l'affichage dans PowerPoint 2011 pour Mac - témoins

À L'aide de la boîte de dialogue Configurer l'affichage dans PowerPoint 2011 pour Mac - témoins

Dans la boîte de dialogue Configurer l'affichage dans PowerPoint, cliquez sur le bouton Configurer l'affichage dans l'onglet Diaporama du ruban Office 2011 pour Mac, ou choisissez Diaporama → Configurer l'affichage dans la barre de menus. Dans les deux cas, la boîte de dialogue Configurer l'affichage polyvalent apparaît. Choisir un type de spectacle dans PowerPoint 2011 pour Mac ...

Enregistrement des fichiers dans Office 2011 pour Mac - témoins

Enregistrement des fichiers dans Office 2011 pour Mac - témoins

Enregistrement d'un fichier sur lequel vous travaillez dans Office 2011 pour Mac est aussi simple que de cliquer sur le bouton Enregistrer dans la barre d'outils Standard, en appuyant sur Commande-S ou en choisissant Fichier → Enregistrer. Si votre fichier a été enregistré précédemment, l'enregistrement du fichier remplace la copie existante du fichier par votre version mise à jour. Si votre fichier n'a pas ...

Fonctionnant avec les modèles de diapositives maîtres dans PowerPoint 2011 pour Mac - les nuls

Fonctionnant avec les modèles de diapositives maîtres dans PowerPoint 2011 pour Mac - les nuls

Dans Office 2011 pour Mac, l'ajout d'une nouvelle présentation de diapositive à une diapositive dans la vue Diapositive maître de PowerPoint 2011 est une tâche assez simple à effectuer. Suivez ces étapes pour commencer: Assurez-vous que vous êtes en mode Masque des diapositives. Choisissez Affichage → Maître → Masque de diapositives dans la barre de menus. Cliquez sur l'onglet Masque des diapositives du ruban, ...

Le choix des éditeurs

Sélectionnez PowerPoint 2007 Objects - dummies

Sélectionnez PowerPoint 2007 Objects - dummies

Avant de pouvoir modifier un objet PowerPoint 2007 sur une diapositive, vous devez le sélectionner. Dans les présentations PowerPoint, les objets peuvent être du texte, des graphiques, des images clipart, des formes, etc. Voici quelques instructions pour sélectionner les objets PowerPoint 2007: Objets texte: Pour sélectionner un objet texte PowerPoint 2007, déplacez le point d'insertion sur le texte qui ...

Définir le contour de la forme sur une diapositive PowerPoint 2007 - dummies

Définir le contour de la forme sur une diapositive PowerPoint 2007 - dummies

Le contrôle shapePoint de powerPoint vous permet style des objets de ligne ou la bordure pour les objets de forme solide sur vos diapositives PowerPoint. Le contrôle Shape Outline se trouve dans le groupe Styles de formes de l'onglet Outils de dessin. Vous pouvez modifier les paramètres suivants pour le contour: Couleur: Définit la couleur utilisée pour ...

PowerPoint 2016 pour les nuls Cheat Sheet - les nuls

PowerPoint 2016 pour les nuls Cheat Sheet - les nuls

PowerPoint 2016 est le logiciel de présentation le plus puissant disponible pour créer et éditer la diapositive montrer des présentations pour le travail, la maison ou l'école. PowerPoint 2016 offre un certain nombre de raccourcis clavier utiles pour effectuer des tâches rapidement. Voici quelques raccourcis pour le formatage PowerPoint commun, l'édition et les tâches de fichiers et de documents. De plus, après avoir créé votre chef-d'œuvre, vous ...