Bien, aquí está el trato, estoy tomando una introducción a la clase de C++ en mi universidad y estoy teniendo problemas para averiguar cómo cambiar la extensión de un archivo. Primero, lo que se supone que debemos hacer es leer en un archivo .txt y contar palabras, oraciones, vocales, etc. Bien, lo tengo, pero el siguiente paso es lo que me preocupa. Entonces se supone que debemos crear un nuevo archivo usando el mismo nombre de archivo que el archivo de entrada, pero con la extensión .code en lugar de .txt (en ese nuevo archivo, codificaremos la cadena agregando números aleatorios al código ASCII de cada uno). personaje si estabas interesado). Siendo un principiante en la programación, no estoy muy seguro de cómo hacer esto. Estoy usando el siguiente fragmento de código para conseguir en un primer momento el archivo de entrada:¿Cómo se cambia la extensión de nombre de archivo almacenada en una cadena en C++?
cout << "Enter filename: ";
cin >> filename;
infile.open(filename.c_str());
Asumo para crear un nuevo archivo que voy a estar usando algo como:
outfile.open("test.code");
Pero no sabré cuál es el nombre del archivo hasta que el usuario lo ingrese, así que no puedo decir "test.txt". Entonces, si alguien sabe cómo cambiar esa extensión cuando creo un nuevo archivo, ¡lo agradecería mucho!
Muy bien, creo que las opciones están más en línea con lo que estaba buscando, ya que recientemente aprendimos sobre métodos de cadenas. ¡Gracias por el aporte! –
Mejor rfind() ya que encontrará el último "." en lugar del primero en el caso de que 'a.b.c.txt' sea un nombre de archivo válido –
.open() toma un const char *, no un std :: sting desafortunadamente. – MSalters