Six, le langage C réalise la copie de fichiers texte et de fichiers binaires

Six, le langage C réalise la copie de fichiers texte et de fichiers binaires

1. Mise en œuvre du code

#include<stdio.h>
#include<assert.h>

//文本文件拷贝
void TxtFileCopy(FILE* des, FILE* arc)
{
    
    
	assert(arc != NULL);//添加断言==if(arc==NULL) printf("源文件不存在,无法读取");

	while (1)
	{
    
    
		char ch = fgetc(arc);

		if (ch == EOF) break;
		
		fputc(ch, des);
	}
	printf("拷贝成功!\n");

	fclose(arc);
	fclose(des);
}

//二进制文件拷贝
void  BinaryFileCopy(FILE* des, FILE* arc)
{
    
    
	assert(arc != NULL);

	char buffer[10];

	int tmp=0;
	//注意:fread()的返回值
	while ((tmp = fread(buffer, sizeof(char), 10, arc))!=0)
	{
    
    
		fwrite(buffer, sizeof(char), 10, des);
	}

	printf("拷贝成功\n");
	fclose(arc);
	fclose(des);

}


int main()
{
    
    
	/*FILE* fp = fopen("D:\\text.txt", "r");
	FILE* fw = fopen("D:\\text1.txt", "w");
	TxtFileCopy(fw, fp);//文本文件拷贝*/

	FILE* fp = fopen("D:\\jay.mp3", "rb");
	FILE* fw = fopen("D:\\1.mp3", "wb");
	BinaryFileCopy(fw, fp);//二进制文件拷贝

	return 0;
}

2. Résultats des tests

  1. Fichier texteInsérez la description de l'image iciInsérez la description de l'image ici
  2. Fichier binaire (un fichier de chanson .mp3 de Jaylen est utilisé ici)
    Insérez la description de l'image ici

Insérez la description de l'image iciInsérez la description de l'image ici
3. Résumé

  • Faites plus attention à la différence entre les fichiers texte et les fichiers binaires
  • Faites attention à la valeur de retour lors de l'utilisation de la fonction fread ()
  • Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/xiaoxiaoguailou/article/details/115047524
conseillé
Classement