[noyau C++] explication détaillée du fonctionnement du fichier

1. Opération de fichier

Les données générées lorsque le programme est en cours d'exécution sont toutes des données temporaires et seront publiées une fois l'exécution du programme terminée, et les données peuvent être conservées dans des fichiers . Il existe deux types de fichiers :

  1. Fichiers texte - les fichiers sont stockés sur votre ordinateur sous forme de texte au format ASCII
  2. Fichiers binaires - les fichiers sont stockés sur l'ordinateur sous forme de texte binaire et les utilisateurs ne peuvent généralement pas les lire directement

Trois catégories de dossiers d'exploitation :

  1. ofstream : opération d'écriture
  2. ifstream : opération de lecture
  3. fstream : opérations de lecture et d'écriture

Les opérations sur les fichiers en C++ doivent inclure les fichiers d'en-tête< fstream >

1.1 Fichiers texte

1.1.1 Ecriture de fichiers

Les étapes pour écrire un fichier sont les suivantes :

  1. Inclure le fichier d'en-tête :#include <fstream>

  2. Créez un objet de flux :ofstream ofs;

  3. ouvrir un fichier :ofs.open("文件路径",打开方式);

  4. Écrire des données :ofs << "写入的数据";

  5. Fermez le fichier :ofs.close();

Méthode d'ouverture de fichier :

méthode ouverte expliquer
ios :: dans ouvrir le fichier pour le lire
ios :: sortie ouvrir le fichier pour l'écriture
ios :: mangé Position initiale : fin de fichier
ios :: appli Ajout pour écrire des fichiers
ios :: tronc Si le fichier existe, supprimez-le d'abord, puis créez-le
ios :: binaire mode binaire

Remarque : La méthode d'ouverture de fichier peut être utilisée conjointement avec l'opérateur |

Par exemple : écrire un fichier en mode binaireios::binary | ios:: out

Exemple:

#include <fstream>

void test01()
{
    
    
	ofstream ofs;
	ofs.open("test.txt", ios::out);

	ofs << "姓名:张三" << endl;
	ofs << "性别:男" << endl;
	ofs << "年龄:18" << endl;

	ofs.close();
}

int main() {
    
    

	test01();

	return 0;
}

Résumer:

  • Les opérations sur les fichiers doivent inclure le fichier d'en-tête fstream
  • Les fichiers lus peuvent utiliser la classe ofstream ou fstream
  • Lors de l'ouverture d'un fichier, vous devez spécifier le chemin du fichier d'opération et la méthode d'ouverture
  • Utilisez << pour écrire des données dans le fichier
  • Une fois l'opération terminée, fermez le fichier

1.1.2 Lecture des fichiers

Les étapes de lecture d'un fichier sont similaires à celles de l'écriture d'un fichier, mais il existe d'autres méthodes de lecture

Les étapes pour lire un fichier sont les suivantes :

  1. Inclure le fichier d'en-tête :#include <fstream>

  2. Créez un objet de flux :ifstream ifs;

  3. Ouvrez le fichier et jugez si le fichier est ouvert avec succès :ifs.open("文件路径",打开方式);

  4. Lire les données : lire de quatre manières (comme le cas de code suivant)

  5. Fermez le fichier :ifs.close();

Exemple:

#include <fstream>
#include <string>

void test01()
{
    
    
	ifstream ifs;
	ifs.open("test.txt", ios::in);

	if (!ifs.is_open())
	{
    
    
		cout << "文件打开失败" << endl;
		return;
	}

	//第一种方式
	//char buf[1024] = { 0 };
	//while (ifs >> buf)
	//{
    
    
	//	cout << buf << endl;
	//}

	//第二种
	//char buf[1024] = { 0 };
	//while (ifs.getline(buf,sizeof(buf)))
	//{
    
    
	//	cout << buf << endl;
	//}

	//第三种
	//string buf;
	//while (getline(ifs, buf))
	//{
    
    
	//	cout << buf << endl;
	//}
	
	//第四种
	char c;
	while ((c = ifs.get()) != EOF)
	{
    
    
		cout << c;
	}

	ifs.close();
}

int main() {
    
    

	test01();

	return 0;
}

Résumer:

  • Les fichiers lus peuvent utiliser la classe ifstream ou fstream
  • Utilisez la fonction is_open pour déterminer si le fichier est ouvert avec succès
  • close ferme le fichier

1.2 Binaires

Pour lire et écrire des fichiers en mode binaire, la méthode d'ouverture doit être spécifiée commeios :: binaire

1.2.1 Ecriture de fichiers

L'écriture de fichiers en mode binaire utilise principalement l'objet stream pour appeler la fonction membre write

Prototype de fonction :ostream& write(const char * buffer,int len);

Explication des paramètres : le tampon de pointeur de caractère pointe vers un espace de stockage en mémoire. len est le nombre d'octets lus et écrits

Exemple:

#include <fstream>
#include <string>

class Person
{
    
    
public:
	char m_Name[64];
	int m_Age;
};

//二进制文件  写文件
void test01()
{
    
    
	//1、包含头文件

	//2、创建输出流对象
	ofstream ofs("person.txt", ios::out | ios::binary);
	
	//3、打开文件
	//ofs.open("person.txt", ios::out | ios::binary);

	Person p = {
    
    "张三"  , 18};

	//4、写文件
	ofs.write((const char *)&p, sizeof(p));

	//5、关闭文件
	ofs.close();
}

int main() {
    
    

	test01();

	return 0;
}

Résumer:

  • L'objet de flux de sortie de fichier peut écrire des données en mode binaire via la fonction d'écriture

1.2.2 Lecture des fichiers

La lecture de fichiers en mode binaire utilise principalement l'objet stream pour appeler la fonction membre read

Prototype de fonction :istream& read(char *buffer,int len);

Explication des paramètres : le tampon de pointeur de caractère pointe vers un espace de stockage en mémoire. len est le nombre d'octets lus et écrits

Exemple:

#include <fstream>
#include <string>

class Person
{
    
    
public:
	char m_Name[64];
	int m_Age;
};

void test01()
{
    
    
	ifstream ifs("person.txt", ios::in | ios::binary);
	if (!ifs.is_open())
	{
    
    
		cout << "文件打开失败" << endl;
	}

	Person p;
	ifs.read((char *)&p, sizeof(p));

	cout << "姓名: " << p.m_Name << " 年龄: " << p.m_Age << endl;
}

int main() {
    
    

	test01();

	return 0;
}
  • L'objet de flux d'entrée de fichier peut lire des données en mode binaire via la fonction de lecture

Acho que você gosta

Origin blog.csdn.net/cui_yonghua/article/details/131426058
Recomendado
Clasificación