Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: elcout en 29 Octubre 2020, 23:55 PM

Título: ayuda con creación de varios ficheros
Publicado por: elcout en 29 Octubre 2020, 23:55 PM
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();
}
Título: Re: ayuda con creación de varios ficheros
Publicado por: Eternal Idol en 30 Octubre 2020, 00:57 AM
Te falta el separador de directorio (en este caso usaste /) despues de c:/datos.
Título: Re: ayuda con creación de varios ficheros
Publicado por: K-YreX en 30 Octubre 2020, 01:05 AM
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).
Título: Re: ayuda con creación de varios ficheros
Publicado por: elcout en 30 Octubre 2020, 11:39 AM
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&)'


Título: Re: ayuda con creación de varios ficheros
Publicado por: Eternal Idol en 30 Octubre 2020, 11:44 AM
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).