Hoy aprendí a copiar un archivo usando lenguaje C, copiando un archivo carácter por carácter, me gustaría grabarlo aquí.
#include<stdio.h>
int main()
{
FILE * pfr = fopen("1.txt", "r"); //打开文件1.txt 用读的模式
if (pfr == NULL)
{
return 1;
}
FILE* pfw = fopen("2.txt", "w"); //打开文件2.txt 用写的模式
if (pfw == NULL)
{ // 如果2.txt打开失败,就把1.txt的文件关闭,指针赋空值
fclose(pfr);
pfr = NULL;
return 0;
}
char ch = 0;
while ((ch = fgetc(pfr)) != EOF) // 循环读取1.txt的指针内容,只要不是EOF文件结束 ,就一直读
{
fputc(ch, pfw); // 把读到的内容写到2.txt中。
}
fclose(pfr); //关闭文件1
pfr = NULL; //指针赋空值
fclose(pfw); //关闭文件2
pfw = NULL; //指针赋空值
}
Esto copia todo el contenido del archivo 1 al archivo 2.
1. función fprintf ()
//int main()
//{ // struct ss = { "¡Hola a todos!", 999, 3.1405926 }; // ARCHIVO* pf = fopen("1.txt", "w"); // if (pf == NULL) // { // perror("¡Error al abrir el archivo!"); // return 1; // } // // // fprintf se formatea como salida en la secuencia especificada, o se puede especificar en stdio a la pantalla // fprintf(pf, "%s %d %f", s.arr, sa, sb); // fclose(pf); // pf = NULL; //}
2. función fscanf()
/int main()
//{ // struct ss; // ARCHIVO* pf = fopen("1.txt", "r"); // if (pf == NULL) // { // perror("open ¡El archivo falló!"); // return 1; // } // // // fscanf obtiene datos de la secuencia especificada // fscanf(pf, "%s %d %f", s.arr, &(sa) , &(sb)); // // printf("%s %d %f", s.arr, sa, sb); // fclose(pf); // pf = NULL; // // devuelve 0 ; //}
3、fwrite()
//int main()
//{ // struct S s = { "¡Hola a todos!", 999, 3.1415962f }; // ARCHIVO* pf = fopen("1.txt", "w"); // if (NULL != pf) // { // // fwrite() escribe en forma binaria // fwrite(&s, sizeof(struct S), 1, pf); // fclose(pf); // pf = NULL; // } // // devuelve 0; //}
4、miedo()
/int main()
//{ // struct S s = { 0 }; // ARCHIVO* pf = fopen("1.txt", "r"); // if (NULL != pf) // { / // fread() lee en binario // fread(&s, sizeof(struct S), 1, pf); // fclose(pf); // pf = NULL; // } // printf("%s %d %f", s.arr, sa, sb); // devuelve 0; //}