| |||
pasar char to int alguien me podria ayudar a saber como poder pasar el valor de una variable char a otra int? pues leo de una cadena con getline y ese valor tengo que mandarlo por outport y si o si envia un valor entero. gracias |
| |||
Re: pasar char to int lo q quiero hacer es lo siguiente, este es el codigo: char valor[4]; ifstream lectura("C:\\VertrigoServ\\www\\doc.txt"); lectura.getline(valor, sizeof(valor)); outport(0x378,valor); yo leo un valor (q es un numero) del archivo doc. txt y ese valor lo quiero enviar al puerto paralelo con la funcion outport. el problema es q no me deja enviar el valor de la variable valor porq es un char y envio solo int. gracias |
| ||||
Re: pasar char to int ¿Y por que no lees el valor directamente como un entero? en vez de leerlo primero como una cadena de caracteres y luego transformarlo Saludos
__________________ Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba: |
| |||
Re: pasar char to int Si estas utilizando algunas librerias de Ansi C, podrias intentar con sprintf, auqneu deberías chequear la compatibilidaad con el resto de las librerias C++ Slds. |
| |||
Re: pasar char to int en realidad lo que quisiera hacer seria algo asi: int v; char valor[4]; ifstream lectura("C:\\VertrigoServ\\www\\doc.txt"); lectura.getline(valor, sizeof(valor)); v=valor;//se que esto no se puedo pero es lo q quiero hacer outport(0x378,v); es decir antes de enviar el v al puerto |
| |||
Re: pasar char to int Sprintf no te sirve, disculpa me confundi, pero prueba con esto: #include <stdlib.h> ---> Es de Ansi C int v; <tu codigo> v=atoi(valor); outport(0x378,v); |
| ||||
Re: pasar char to int Cita: Tienes razon pero si lo haces asi:porque el getline lee solo cadena de caracteres. tambien habia pensado esa solucion pero no es posible. gracias de todos modos
Código:
Resuelves el problema del modo que te estaba comentando.int v; ifstream lectura("C:\\VertrigoServ\\www\\doc.txt"); lectura >> v; outport(0x378,v); La solucion propuesta por heraldex es completamente valida aunque no es de mi agrado lerr algo como una cadena y luego pasarlo a entero cuando no hay necesidad de ello. Saludos
__________________ Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba: |
| |||
Respuesta: pasar char to int He realizado un programa que me permite leer el puerto serie, pero me muestra los datos como tipo char y quiero que me los muestre como enteros. He estado probando vuestras soluciones pero ninguna me ha funcionado(o no he sabido funcionarla) Pego el código del programa por si a alguien se le ocurre una posible solución para que la variable sResult me salga como hexadecimal(o como mucho en decimal). Muchas gracias! int main(int argc, char **argv) { int result; char sResult[254]; //variable que contendra lo leido a traves del puerto //Abro puerto RS232 fd = open("/dev/ttyM0", O_RDONLY| O_NOCTTY | O_NDELAY); //Creo socket para solo lectura | | no bloqueante, si se quiere abrir el socket de lectura y escritura cambiar O_RDONLY, por O_RDWR if (fd == -1) { //Si hay error al abrir perror("open_port: Unable to open /dev/ttyM0 - "); return 1; } else { fcntl(fd, F_SETFL, 0); } printf("baud=%d\n", getbaud(fd)); //imprimo la velocidad del puerto en badios por defecto initport(fd); //inicializo el puerto printf("baud=%d\n", getbaud(fd)); //imprimo la velocidad en baudios del puerto despues de realizar la inicializaci�n //Codigo para escribir datos a traves del puerto RS232, como no queremos escribir, lo comento /*char sCmd[254]; sCmd[0] = 0x41; sCmd[1] = 0x42; sCmd[2] = 0x43; sCmd[3] = 0x00; if (!writeport(fd, sCmd)) { printf("write failed\n"); close(fd); return 1; } printf("written:%s\n", sCmd);*/ do{ usleep(5000000); //Tiempo a esperar como maximo para leer un dato del puerto fcntl(fd, F_SETFL, FNDELAY); // no bloqueo el puerto serie para letura result = readport(fd,sResult); if (!result) { //sino se lee nada del puerto printf("FALLO DE LECTURA\n"); close(fd); return 1; } //printf("contenido del puerto=%s\n", sResult); //imprimo el contenido leido }while (result); //Repito operacion leer mientras no haya error close(fd); //cierro el puerto return 0; } |