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

Les bons outils pour la photographie macro - les nuls

Les bons outils pour la photographie macro - les nuls

Vous avez de nombreuses options pour l'équipement pour capturer des gros plans macro photographies. Vous avez peut-être déjà une caméra qui prend de superbes photos en gros plan. Macro photographie signifie créer une image dans laquelle le sujet est représenté sur le capteur numérique (ou plan de film) dans sa taille réelle. Si vous trouvez que les limites de votre ...

Conseils pour prendre bon point et déclenchez Photographies - mannequins

Conseils pour prendre bon point et déclenchez Photographies - mannequins

La photographie est sur la capture et la conservation images, et en tant que photographe, vous voulez prendre les meilleures photos que vous pouvez. Si vous utilisez un appareil photo compact, utilisez ces astuces simples pour améliorer vos photos: Verrouillez toujours la mise au point avant de prendre une photo. Cadre, ne viser pas. Utilisez le viseur ou sur l'écran tout affichage pour composer ...

Le trépied droit pour la photographie en macro et en gros plan - les nuls

Le trépied droit pour la photographie en macro et en gros plan - les nuls

Pour photographier certains sujets de près et en essayant d'atteindre certains résultats, le trépied que vous utilisez peut déterminer si vous réussissez ou échouez. Savoir ce qui est disponible sur le marché et les différences entre les trépieds peut être très utile et vous aide à décider quels trépieds vous conviennent le mieux. Lors de la sélection d'un trépied, accordez une attention particulière à ...

Le choix des éditeurs

Comment entendre la voix de Dieu pendant la prière chrétienne - par tys

Comment entendre la voix de Dieu pendant la prière chrétienne - par tys

La prière chrétienne est une façon de parler à Dieu. Cependant, pour tirer pleinement parti de la prière chrétienne, vous ne pouvez pas simplement parler, vous devez aussi vous préparer à écouter. Les conseils suivants peuvent vous aider à entendre ce que Dieu vous dit: Obtenez le scoop sur ce que Dieu vous dira par ...

Comparant les croyances à travers l'église chrétienne - les mannequins

Comparant les croyances à travers l'église chrétienne - les mannequins

Différentes confessions chrétiennes sont organisées et adorent de différentes façons. Cette liste pratique vous aidera à suivre et à comparer certaines différences dans le culte, les rituels et les croyances des plus grands groupes de l'Église chrétienne. Moyens de salut anglicans / épiscopaux: la grâce de Dieu par la foi seule. Comment ils adorent: le style traditionnel par la liturgie; liturgie contemporaine ...

Conversation avec Dieu - mannequins

Conversation avec Dieu - mannequins

La prière consiste simplement à communiquer avec Dieu. Il n'y a rien de magique à propos de la prière chrétienne; c'est une question de fait. Cependant, la prière chrétienne est plus que simplement dire à Dieu votre liste de demandes et s'attendre à ce qu'il réponde à vos prières comme s'il était un distributeur automatique cosmique. Oui, la prière est un moyen de partager avec Dieu ...

Le choix des éditeurs

Loi visant à accroître Uplifting émotions - mannequins

Loi visant à accroître Uplifting émotions - mannequins

Afin d'élever vos émotions, la première étape est de prendre conscience de ce qui émotions que vous avez. Prenez conscience de ce qui vous déclenche - ce qui vous met en colère et vous met en colère et ce qui vous rend très excité. Un déclencheur surveille certaines émissions de télévision et permet aux émotions de ces programmes de s'infiltrer ...

Comment les entreprises vous convainquent d'acheter leurs produits - mannequins

Comment les entreprises vous convainquent d'acheter leurs produits - mannequins

Presque tous les médias commerciaux destinés aux femmes reçoivent leur publicité les revenus des secteurs de l'alimentation, de la beauté, de l'alimentation et de la mode. Juste l'industrie de régime elle-même est une entreprise commerciale de 33 milliards de dollars par an. Et, bien sûr, ces industries ont continuellement besoin de clients pour continuer à réussir. C'est dans leur meilleur intérêt de ...

Comment l'image corporelle se forme dans votre jeunesse - les nuls

Comment l'image corporelle se forme dans votre jeunesse - les nuls

En général, ce que vous avez vécu avec votre famille grandissaient ont eu un effet direct sur les pensées et les sentiments que vous aviez à propos de votre corps. Repensez à vos jeunes années. Dans quelle mesure les énoncés suivants décrivent votre famille? Personne n'a exercé. La voiture était utilisée même pour de courts trajets. De la nourriture lourde et engraissante ...