El programa ya está hecho (más o menos), la cosa es que, no me da ningún tipo de error sino que se crashea y deja de funcionar en su ejecución.
Acá el código que llevo hasta ahora:
Código
#include <iostream> #include <fstream> #include <string> using namespace std; //Función que devuelve una línea con cada espacio en blanco con un guión bajo string reemplazar(string linea); int main() { //Creación del archivo. fstream archivo("archivo.txt", ios::in | ios::out); //Variable para almacenar cada línea del archivo. string linea; //Variable para reemplazar todo lo que está en el archivo. string dArchivo = ""; //Comprobando que el archivo exista. if(!archivo) { cerr << "Error: El archivo no existe." << endl; return -1; } //Leyendo cada línea del fichero. while(!archivo.eof()) { //Obteniendo línea por línea desde el archivo. getline(archivo, linea); //Almacenando las líneas con los guiones bajos ya reemplazados. dArchivo += reemplazar(linea) + "\n"; } //Sobreescribiendo el archivo con los guiones bajos ya establecidos. archivo << dArchivo; //Cerrando el archivo. archivo.close(); return 0; } //Implementando el método para reemplazar los espacios en blanco por un guión bajo. string reemplazar(string linea) { //Nueva línea string nLinea = ""; //Sustituyendo cada espacio en blanco con un guión bajo. for(unsigned int h = 0; h < linea.length(); h++) { if(linea[h] == ' ') { nLinea[h] += '_'; } else { nLinea[h] += linea[h]; } } return nLinea; }