Maison >développement back-end >C++ >Utilisation de fichiers texte pour l'entrée et la sortie en C++

Utilisation de fichiers texte pour l'entrée et la sortie en C++

PHPz
PHPzoriginal
2023-08-22 14:49:492852parcourir

Utilisation de fichiers texte pour lentrée et la sortie en C++

En C++, le traitement des fichiers texte est très important, car la plupart des programmes doivent effectuer des entrées et des sorties avec des fichiers externes, comme la lecture de fichiers de données stockés sur le disque ou le stockage de données dans le programme dans des fichiers. Par conséquent, cet article explique comment utiliser les fichiers texte pour les entrées et les sorties en C++.

1. Ouverture et fermeture de fichiers texte

En C++, vous devez utiliser un objet de classe de flux de fichiers (fstream) pour lire et écrire des fichiers. Avant d'utiliser un fichier, vous devez créer un objet flux de fichiers et l'associer au fichier. Le constructeur d'un objet flux de fichiers peut accepter le nom du fichier et la méthode d'ouverture comme paramètres. Il existe trois méthodes courantes d'ouverture de fichiers en C++ :

  1. ios::in : ouvrez le fichier en mode lecture seule.
  2. ios::out : ouvrez le fichier en mode écriture seule.
  3. ios::app : ouvrez le fichier en mode ajout.

Voici un exemple simple montrant comment ouvrir un fichier :

#include <fstream>
using namespace std;

int main()
{
    // 创建文件流对象并关联文件
    fstream file("example.txt", ios::in | ios::out);

    // 判断文件是否打开成功
    if (!file)
    {
        cout << "无法打开文件" << endl;
        return -1;
    }

    // 文件操作

    // 关闭文件
    file.close();
    return 0;
}

Dans le code ci-dessus, un objet de flux de fichiers nommé file est créé via le constructeur de la classe fstream et associé au fichier example.txt . Lorsqu'un fichier est ouvert, une méthode est utilisée qui est à la fois lisible et inscriptible. En d'autres termes, lorsque vous devez lire un fichier, vous devez utiliser l'option ios::in ; lorsque vous devez écrire un fichier, vous devez utiliser l'option ios ::out lorsque vous devez ajouter du contenu ; à la fin du fichier, vous devez utiliser ios ::appoptions. Pour plus de commodité, des méthodes lisibles et inscriptibles sont utilisées ici.

Une fois l'opération sur le fichier terminée, le fichier doit être fermé. Ceci peut être réalisé grâce à la fonction close() de l'objet flux de fichiers.

2. Lecture des données du fichier

Après avoir ouvert le fichier texte, nous pouvons utiliser l'objet flux d'entrée du fichier (ifstream) pour lire les données du fichier texte. C++ fournit une variété de méthodes pour lire des données à partir de fichiers, notamment les suivantes :

  1. Fonction getline() : lit une ligne de données texte à partir d'un fichier.
  2. Opérateur : Lire un mot ou une valeur du fichier.
  3. Fonction read() : lit les données d'une longueur spécifiée à partir du fichier.
  4. Fonction get() : Lit un caractère du fichier.
  5. Fonction peek() : pré-lisez le caractère suivant mais ne le supprimez pas du fichier.
  6. Fonction ignore() : ignore le nombre de caractères spécifié dans le fichier.

Voici un exemple simple qui montre comment lire les données d'un fichier :

#include <fstream>
#include <iostream>
using namespace std;

int main()
{
    // 创建文件流对象并关联文件
    ifstream file("example.txt");

    // 判断文件是否打开成功
    if (!file)
    {
        cout << "无法打开文件" << endl;
        return -1;
    }

    // 读取文件内容
    string str;
    while (getline(file, str))
    {
        cout << str << endl;
    }

    // 关闭文件
    file.close();
    return 0;
}

Dans le code ci-dessus, nous créons un objet de flux de fichier d'entrée nommé file et l'associons au fichier example.txt. Dans la boucle while, le contenu du fichier est lu ligne par ligne en appelant la fonction getline(), et chaque ligne de données est stockée dans la variable chaîne str. Enfin, le contenu lu est émis via cout.

3. Écrire des données dans un fichier

En C++, vous pouvez utiliser l'objet flux de sortie de fichier (ofstream) pour écrire des données dans un fichier texte. Les fonctions d'écriture couramment utilisées sont les suivantes :

  1. Fonction put() : Écrivez un caractère.
  2. Fonction write() : écriture de données d'une longueur spécifiée.

Voici un exemple simple qui montre comment écrire des données dans un fichier :

#include <fstream>
#include <iostream>
using namespace std;

int main()
{
    // 创建文件流对象并关联文件
    ofstream file("example.txt");

    // 判断文件是否打开成功
    if (!file)
    {
        cout << "无法打开文件" << endl;
        return -1;
    }

    // 向文件中写入数据
    for (int i = 1; i <= 10; i++)
    {
        file << "This is line " << i << endl;
    }

    // 关闭文件
    file.close();
    return 0;
}

Dans le code ci-dessus, nous créons un objet de flux de fichier de sortie nommé file et l'associons au fichier example.txt. Dans la boucle for, les données sont écrites dans le fichier via l'opérateur

4. Pointeur de fichier

Lorsque vous effectuez des opérations sur les fichiers, vous devez utiliser un pointeur pour indiquer l'emplacement actuel de lecture et d'écriture du fichier. Le pointeur de fichier, souvent appelé indicateur de position de fichier, est une variable interne maintenue par chaque fichier qui enregistre le nombre d'octets depuis le début du fichier jusqu'à la position actuelle.

C++ fournit les fonctions suivantes pour faire fonctionner les pointeurs de fichiers :

  1. Fonction tellg() : Obtenez la position de lecture du fichier.
  2. Fonction tellp() : Obtenez la position d'écriture du fichier.
  3. Fonction seekg() : définit la position de lecture du fichier.
  4. fonction seekp() : définit l'emplacement d'écriture du fichier.

Voici un exemple simple montrant comment manipuler un pointeur de fichier :

#include <fstream>
#include <iostream>
using namespace std;

int main()
{
    // 创建文件流对象并关联文件
    fstream file("example.txt", ios::in | ios::out);

    // 判断文件是否打开成功
    if (!file)
    {
        cout << "无法打开文件" << endl;
        return -1;
    }

    // 获取、设置文件指针位置
    file.seekp(6); // 将文件写位置设置为6
    file.put('X'); // 在文件位置6处写入字符'X'

    file.seekg(0); // 将文件读位置设置为0
    char ch = file.get(); // 从文件位置0读取一个字符
    cout << "第一个字符是:" << ch << endl;

    // 关闭文件
    file.close();
    return 0;
}

Dans le code ci-dessus, nous créons un objet de flux de fichiers nommé file et l'associons au fichier example.txt. Avant de manipuler le pointeur de fichier, le fichier doit être ouvert.

Dans l'exemple, nous avons utilisé la fonction seekp() pour définir la position du pointeur de fichier sur 6, puis nous avons utilisé la fonction put() pour écrire le caractère « X » à la position 6 du fichier. Ensuite, utilisez la fonction seekg() pour définir la position du pointeur de fichier sur 0, utilisez la fonction get() pour lire un caractère à partir de la position 0 du fichier et affichez-le.

5. Résumé

Ce qui précède sont les opérations de base d'entrée et de sortie de fichiers texte en utilisant C++. Lorsque vous effectuez des opérations sur les fichiers, vous devez faire attention à l'ordre dans lequel les fichiers sont ouverts et fermés, ainsi qu'au fonctionnement de la position du pointeur de fichier. Les opérations de lecture et d'écriture de fichiers texte, le positionnement du pointeur et d'autres opérations sont très simples, mais vous devez garder à l'esprit les fonctions et opérations couramment utilisées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn