prueba con
wstring,
wcout y
wcin en vez de con
string,
cout y
cin.
El problema es el comentado en otras ocasiones... la tabla ASCII incorpora únicamente el juego de caracteres inglés. Para gestionar alfabetos diferentes sueles necesitar más de un byte por caracter... para eso existe wstring. Un pequeño inconveniente tanto de
string como de
wstring es que no hay conversiones directas a unicode, pero eso puede no ser un problema para tí.
Un saludo.