Programación General > C/C++
Copiar nombre de un fichero eliminando la extensión
(1/1)
inmaortigosa:
hola.
Estoy modificando un código. En el código leo dos archivos de datos datos.dat y datos-1.dat, con cada uno de estos archivos hago unos cálculos, y los escribo en otro fichero. El nombre datos.dat lo paso a Name
ifstream file (Name);
char fileout[1024];
sprintf(fileout,"%s.out",Name);
ofstream out(fileout);
Así que el archivo de resultados me queda como datos.dat.out y el programa con el que leo los datos no me reconoce un archivo con dos extensiones, de manera que quiero que el archivo de salida sea datos.out.
Sé que hay una orden para eliminar las extensiones, pero no la encuentro. Alguien me puede ayudar???
Gracias!!!!!!
m0skit0:
Sólo tienes que recorrer la cadena y eliminar todo lo que haya a partir del último punto. Para ello puedes empezar por el final de la cadena y rellenar con ceros hasta encontrar el punto (que también debes sustituír con cero).
Geo:
Una forma muy fácil usando strtok
--- Código: C ---#include <stdio.h>#include <string.h> int main() { char nombre[] = "datos.dat"; printf( "nombre: %sn", nombre ); strtok( nombre, "." ); printf( "nombre: %sn", nombre ); return 0;}
inmaortigosa:
Gracias!!!!
Leo_Gutierrez:
O hacer algo como esto:
--- Código: C ---#include <stdio.h>int main(){ char filename[] = "file.txt"; for(signed int i = 0; filename[i] != ''; i++) { if(filename[i] == '.') filename[i] = ''; } printf("%s", filename); return 0;}
Navegación
Ir a la versión completa