ayuda con creación de varios ficheros

Iniciado por elcout, 29 Octubre 2020, 23:55 PM

0 Miembros y 1 Visitante están viendo este tema.

elcout

miren tenia la idea de generar  10 ficheros cada uno con el mismo nombre solo que con distinta numeración para guardar diferentes datos en cada fichero y  almacenarlos en una carpeta determinada.

para esto  concatene la ruta y el nombre para después solo ingresarlo en la función
archivo.open() el problema es que me arroja error justo en esa parte y no entiendo el porque ni como solucionar esa traba.

les adjunto el programa para que me puedan orientar o enseñar una manera para que mi idea funcione.

Código (cpp) [Seleccionar]
#include<iostream>
#include<fstream>
#include <sstream>
#include <direct.h>

using namespace std;

void primeringreso(){
string nombre="sillon";
string result;
ofstream archivo;

mkdir("c:/datos");

for(int i=0;i<10;++i){

   std::stringstream sstm;//concatenar
   sstm <<"c:/datos" <<nombre << i;
   result = sstm.str();
   
   
   archivo.open(result,ios::app);//apretura o creacion del documento
   
   if(archivo.fail()){
   cout<<"el archivo numero "<<i<<" no pudo abrirse"<<endl;
   exit(1);
   }
   archivo.close();
}
}

int main(){
primeringreso();
}

Eternal Idol

Te falta el separador de directorio (en este caso usaste /) despues de c:/datos.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

K-YreX

Exactamente, como te dice @Eternal Idol, te falta el separador entre el directorio y el nombre del fichero.

Comprueba tu directorio C: porque si has ejecutado ese programa, habrás creado un directorio datos/ y al mismo nivel (es decir en C:) tendrás los ficheros datossillon(i).
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;

elcout

Cita de: Eternal Idol en 30 Octubre 2020, 00:57 AM
Te falta el separador de directorio (en este caso usaste /) despues de c:/datos.

hola, pues si estaba ese error lo arregle pero aun me sigue lanzando error diciendo

[Error] no matching function for call to 'std::basic_ofstream<char>::open(std::string&, const openmode&)'



Eternal Idol

#4
Cita de: elcout en 30 Octubre 2020, 11:39 AM
hola, pues si estaba ese error lo arregle pero aun me sigue lanzando error diciendo

[Error] no matching function for call to 'std::basic_ofstream<char>::open(std::string&, const openmode&)'

¿Como lo arreglaste exactamente? ¿Antes no te compilaba acaso?

http://www.cplusplus.com/reference/fstream/ofstream/open/

Proba con result.c_str() como primer parametro a open si tu compilador no soporta >= C++11 (o configuralo para usar >= esa version del standard).
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón