Dev - C++ - Programa creador de archivos no funciona en DEV 5.11

 
Vista:
sin imagen de perfil

Programa creador de archivos no funciona en DEV 5.11

Publicado por Francisco (6 intervenciones) el 28/09/2016 13:17:30
Hola me cree una cuenta en la pagina para que me puedan ayudar con este problema que tengo:
Resulta que hize este programa basico de archivos y no funciona en versiones posteriores al dev 5 y solo en versines anteriores como ejemplo la 4.9.2.
La utilidad del programa es basica lee el archivo entrada.txt y crea uno nuevo llamado salida.txt con el contenido de entrada.txt
el programa se queda en el LOOP y crea un archivo de salida lleno con el mismo carcter que puede llegar a pesar 100.000 kb ¿que le debo cambiar?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include<iostream>
#include<string.h>
using namespace std;
 
int main (){
FILE *entrada, *salida;
char cadena[100];
int n;
//se cambia dependiendo de la ubicacion del archivo
entrada=fopen("f:\\archivos/entrada.txt","r+");
salida=fopen("f:\\archivos/salida.txt","a+");
if(entrada==NULL||salida==NULL){
 
cout<<"error al abrir archivo";
}
do
{
 
    fgets(cadena, n, entrada);
	fputs(cadena, salida);
}
while(!feof(entrada));
fprintf(salida,"\n hasta la proxima");
fclose(entrada);
fclose(salida);
cout<<"FIN"<<endl;
system("pause");
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 417
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Programa creador de archivos no funciona en DEV 5.11

Publicado por Thanatos (199 intervenciones) el 29/09/2016 11:37:49
Intenta con esto:

En C:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <stdlib.h>
 
int main(void) {
    const int kLimite = 100;
    FILE *entrada = fopen("entrada.txt", "r+");
    FILE *salida = fopen("salida.txt", "a+");
 
    if (entrada != NULL && salida != NULL) {
        char cadena[kLimite];
        while (fgets(cadena, kLimite, entrada) != NULL) {
            fputs(cadena, salida);
        }
        fprintf(salida, "%s", "\nhasta la proxima.\n");
        fclose(entrada);
        fclose(salida);
    } else {
        printf("* Error al abrir archivo *\n");
    }
    printf("FIN");
 
    return 0;
}

En C++:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main() {
    std::ifstream entrada("entrada.txt", std::ios::in);
    std::ofstream salida("salida.txt", std::ios::out | std::ios::app);
 
    if (!entrada.fail() && !salida.fail()) {
        salida << entrada.rdbuf();
        salida << "\nhasta la proxima.\n";
    } else {
        cout << "* Error al abrir archivo *\n";
    }
    cout << "FIN";
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar