Fichier Otaru C++ à chapitre unique⑨

Table des matières

1. Définition et référence des variables de type de fichier

1.1 Lecture et écriture de fichiers

Version 1.2 de fopen() (C uniquement)

1.3 Flux d'entrée et de sortie de fichiers (C++ uniquement)


Il existe deux manières de sauvegarder des fichiers : les fichiers binaires et les fichiers texte. Par exemple, enregistrez le numéro 121.

Le stockage binaire est efficace, mais il n'est pas convivial pour nous : il est trop difficile de convertir chaque valeur en binaire ! Prenons donc un simple fichier texte. Le formulaire texte peut être traduit en texte en utilisant le code ASCII, ce qui est plus pratique. Les entrées et sorties du concours d'informatique sont tous des fichiers texte.

Pour apprendre les fichiers, nous devons comprendre, créer des fichiers, ouvrir des fichiers, lire et écrire des fichiers et fermer des fichiers.

 

1. Définition et référence des variables de type de fichier

Il existe deux manières pour les programmes C++ de gérer les tampons de fichiers : le streaming et les E/S. Les opérations sur les fichiers en streaming sont généralement utilisées dans les compétitions informatiques, on apprend donc principalement le streaming. Il existe deux types de fichiers en streaming :

  • Fichier de flux de la classe de flux.
  • Pointeur de fichier FILE.

Pour importer la bibliothèque : #include<cstdio> pour utiliser le fichier.

1.1  Lecture et écriture de fichiers

Lire le fichier d'entrée en mode lecture seule

Format : freopen("nom du fichier", "r", stdin);

Lire le fichier de sortie en mode écriture

Format : freopen("nom du fichier", "w", sortie standard);

Enfin, assurez-vous de fermer les fichiers d'entrée et de sortie ;

fclose(stdin);fclose(stdin);

modèle de code de fichier freopen

   

freopen prend en charge scanf, printf, cin, cout ; et d’autres méthodes d’entrée et de sortie de fichiers.

Exemple 1. Lisez les données du fichier in.txt et enregistrez leur somme dans out.txt ;

Analyse : 1. Écrivez d'abord le modèle de code du fichier ; 2. Additionnez le code.

Pour créer le fichier d'entrée in.txt au chemin approprié.

#include<iostream>
#include<cstdio>
using namespace std;
int main(){	
	freopen("in.txt","r",stdin); //文件数据读取 
	freopen("out1.txt","w",stdout); //文件结果写入   
	int n,sum=0;
//	for(int i=1;i<=5;i++){ //for循环求和 
//		cin>>n;
//		sum += n;
//	}
	while(cin>>n){//while循环求和 
		sum += n;
	}
	cout<<sum;
	fclose(stdin); fclose(stdout);
	return 0;
} 

 On constate que dans le code ci-dessus, à l'exception du modèle du framework de fichiers, les autres codes sont des formules de calcul pour les opérations de sommation.

Après avoir exécuté le code, le fichier out1.txt de freopen("out1.txt","w",stdout); sera affiché.

 

Les résultats de sortie seront affichés dans out1.txt. Incroyable! ! !


Version 1.2  de fopen() (C uniquement)

En plus de la méthode freopen de lecture de fichiers, nous avons également la méthode fopen de lecture de fichiers. Le pointeur de fichier FILE est utilisé.

Par rapport à freopen, cette méthode fopen() ne prend en charge que scanf et printf ; pour l'entrée et la sortie de fichiers.

modèle de code de fichier fopen

 Exemple 2. Trier le tri. Saisissez n entiers et triez-les par ordre croissant.

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int main(){
	FILE *fin,*fout;	
	fin = fopen("sort.txt","r"); 
	fout = fopen("out.txt","w");  
	int a[1000],n,sum=0;
	fscanf(fin,"%d",&n);
	for(int i=0;i<n;i++){
		fscanf(fin,"%d",&a[i]);
	}
	sort(a,a+n);
	for(int i=0;i<n;i++){
		fprintf(fout,"%d ",a[i]);
	}
	fclose(fin); fclose(fout);
	return 0;
} 

N'oubliez pas de définir d'abord le fichier sort.txt, de saisir 6 nombres comme indiqué ci-dessus, et de trier les 6 entiers ! ! .

On constate que les codes d'opération pour ouvrir le fichier et fermer le fichier sont cette fois différents.


1.3  Flux d'entrée et de sortie de fichiers (C++ uniquement)

 Importez d'abord la bibliothèque : #include<fstream>

Modèle de code de fichier de streaming

Exemple 3. Lisez les données du fichier in.txt et enregistrez leur somme dans out.txt ;

Analyse : 1. Écrivez d'abord le modèle de code de fichier ; 2. Additionnez le code

#include<fstream>
#include<iostream>
using namespace std;
int main(){
	ifstream fin("in.txt");
	ofstream fout("out.txt");   
	int n,sum=0;
	while(fin>>n){//while循环求和 
		sum += n;
	}
	fout<<sum<<endl;
	fin.close(); fout.close();
	return 0;
} 

Je suppose que tu aimes

Origine blog.csdn.net/weixin_44775255/article/details/129402666
conseillé
Classement