Código
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; }
Código
Ahí no le estás agregando el caracter a la cadena. Ahí le estás sumando '_' (su valor ascii) al caracter en la posición h (inexistente, de ahí el error).
nLinea[h] += '_';
Querrías poner:
Código
nLinea += '_';