Hola buenas!
Bueno tengo que hacer un proyecto para la uni en el que tengo que mostrar los datos de un archivo de texto en pantalla.
Lo he conseguido hacer por mi cuenta salvo un problemilla, que es que al mostrar lo que hay escrito en el archivo en pantalla no muestra los espacios entre las palabras sino que muestra una "à" en cada espacio.
Aquí dejo el código:
bool display(string about)
{
bool ok = false;
ifstream file;
string a;
file.open(about.c_str());
if (file.is_open())
{
getline(file, a);
while(a != "X")
{
cout << a << endl;
getline(file, a);
ok = true;
}
}
else
{
cout << "File not found!" << endl;
}
return ok;
}
Esto es lo que debería enseñar:
Citar--------------------------------------------------------
About Pass the calculator
Project 1 - Version 3.1 (10/20/2014)
Fundamentals of Programming
Facultad de Informatica
Universidad Complutense de Madrid
------------------------------------------------------
X
Y esto es lo que enseña:
Citar--------------------------------------------------------
AboutàPassàtheàcalculator
Projectà1à-à3.1à(10/20/2014)
FundamentalsàofàProgramming
FacultadàdeàInformatica
UniversidadàComplutenseàdeàMadrid
------------------------------------------------------
X
Seguro que es una chorrada pero estoy aprendiendo xD
No es problema del código. Ha de ser un problema de codificación (?).
¿Cómo creaste el archivo? ¿Bloc de notas?
A todo esto, en vez de while(a != 'X'), puedes poner while(file).
Si lo cree con el block de notas
Un editor de texto puede guardar los datos en diferentes codificaciones. Las mas frecuentes son ASCII y UTF-8. La codificación que usa la consola de Windows es ASCII, por lo que tendrás que guardar el archivo con dicha codificación.
Para trastear con texto plano, bájate el notepad++ (por ejemplo)
https://notepad-plus-plus.org/
Pues si era que lo tenía que guardar en UTF-8 :o
Muchas gracias! ;D ;D ;D