Quiero hacer un programa que me lea una frase del fichero test.txt, que pueda contener caracteres con tilde y algunos más.
Sé que existe el Ascii-255 (http://www.elcodigoascii.com.ar), el cual contiene los caracteres que necesito pero a partir del 127 hace "overflow" o algo así y no detecta el carácter correcto.
¿Cómo puedo sacarlo del istream, quizá con un string? Si conocéis algún otro método sin usar el búfer también me va bien. ¡Gracias!
Código: Seleccionar todo
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main () {
filebuf fb;
fb.open ("test.txt",ios::in);
istream is(&fb);
is.seekg (0, ios::end);
int size = is.tellg();
is.seekg (0, ios::beg);
char c;
string s = "";
for (int i = 0; i < size; ++i) {
c = char(is.get()); // al hacer esta captura no coge la letra con tilde, sólo ASCII 33-126.
if (c >= 'a' and c <= 'z') s += c;
else if (c >= 'A' and c <= 'Z') s += c - 'A' + 'a';
else if( .... ) {
// á à é è í ì ó ò ú ù ü ý
}
else s += " ";
is.peek();
}
cout << endl << s << endl << endl;
fb.close();
return 0;
}