SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: Daniel103 en Viernes 15 de Febrero de 2008, 22:43
-
El problema que no logro resolver es que cuando introdusca la letra ñ o Ñ me sale el 36 y el 37 respectivamente, y deberia ser el 164 y 165...
Ademas cuando los vuelvo a transformar en su caracter al 36 y 37 aparece $ y %.
Si alguien me podria hechar una mano lo agradeceria mucho.
#include <iostream>
#include <string.h>
using namespace std;
int main(int argc, char *argv[])
{
int tfrase=0; //tamaño frase
int vector[100];
string frase;
system ("CLS");
cout<<"introdusca un texto "<<endl;
getline(cin,frase);
tfrase=frase.size();
cout<<"usted introdujo un texto de "<<tfrase<<" caracteres"<<endl;
cout<<"Aqui pasamos la frase completa de string a ascii"<<endl;
cout<<"y luego lo guardamos en un vector"<<endl;
for(int tam =0; tam<tfrase;tam++){
vector[tam]= toascii(frase[tam]);
}
cout<<"\nLuego imprimimos el vector"<<endl;
for(int tam =0; tam<frase.size();tam++){
vector[tam];
cout<<vector[tam]<< " ";//las comillas son para poner espacio en blanco
}
/* ///////////////////////////////
a= static_cast<char>(32);
cout<<"El valor de 32 convertido a ascii es: "<<a<<endl;
////////////////////////////////////
*/
system("PAUSE");
return EXIT_SUCCESS;
}
-
Estas cometiendo un error en la utilizacion de la funcion toascii, en realidad no hace lo que tu crees que deberia hacer, te dejo la definicion:
Macro toascii ANSI C
int toascii(int c);
Convierte caracteres a formato ASCII.
toascii es una macro convierte el entero c a ASCII eliminando todos los bits menos los siete de menor peso. Eso proporciona un valor dentro del rango entre 0 y 127.
Si le sumas 128 al valor, veras que obtienes 164 y 165.
-
muchas gracias, me sirvio bastante!
-
No saben si existe alguna funcion que como toascii pero que trabaje con toda la tabla de los valores ascii? osea que sea desde 0 al 255??
-
http://en.wikipedia.org/wiki/Ascii (http://en.wikipedia.org/wiki/Ascii)
http://en.wikipedia.org/wiki/Extended_ASCII (http://en.wikipedia.org/wiki/Extended_ASCII)
http://en.wikipedia.org/wiki/Unicode (http://en.wikipedia.org/wiki/Unicode)
-
basicamente lo que quiero hacer es un string donde se introduzca una frase, y esa frase solo me acepte caracteres del abcedario, y espacios en blanco.
Asi que para hacer eso pense en pasar todos los caracteres a su valor ascii condicionarlo para que solo pueda introducir los caracteres del abcedario y los espacios en blanco.
Pero con la ñ y la Ñ no me va porque la funcion toascii solo funciona desde el 0 al 127, por lo que hay algunos valores que se repiten.
Hay alguna otra forma de condicionar que la frase solo se introduscan valores de a la z y espacios en blanco?
GRACIAS!