C/Visual C - Problema con variable char

 
Vista:

Problema con variable char

Publicado por Horacio Navarro (5 intervenciones) el 12/06/2002 17:34:24
Tengo una variable tipo char, la cual al ser declarada incializa automaticamente con el caracter \0, mas adelante la intento leer con un scanf, pero al pasar la linea del printf mi variable toma el valor de \n y no se detiene en el scanf, espero alguien me pueda ayudar, la verison que utilizo es borland c++ 5.0
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con variable char

Publicado por Teme.. (2 intervenciones) el 12/06/2002 22:19:00
hola que tal...
chispas, pues no atino a pensar como la declaras verdad quiza necesites de getchar() o algo semejante..
checa este sencillo codigo a ver si te da una idea..

int main()
{
char a='\0';

clrscr();
printf( "Introduce una letra: " );
scanf( "%c", &a );
printf ( "\nLa letra escrita es una %c",a );
getch();
}

o si no pon el trozo de codigo que hace uso de tu declaracion e impresion en pantalla...

espero que te sirva sino reclamale al Teme...

chaoito bye...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con variable char

Publicado por Analia (49 intervenciones) el 13/06/2002 05:29:13
Hola !!

por ejemplo vos pones:
char sigue=='s', op;
y te lo toma por 0?

acordate que \n es saltar un renglón.

No entiendo muy bien.
Espero que me escribas saluditos YO.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con variable char

Publicado por Horacio (5 intervenciones) el 13/06/2002 16:56:17
No la variable inicia sola con \0 ke es fin de archivo, y el \n lo tengo en el printf, pero lo toma la variable char, alguien me sugirio un getch o getchar, pero de todas formas no almacena el valor.....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con variable char

Publicado por Alex (1 intervención) el 13/06/2002 17:12:27
Muestra tu codigo de fuente para revisarlo.
\n esto es salto de linea.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con variable char

Publicado por Analia (49 intervenciones) el 14/06/2002 02:07:28
Yo pienso lo que entres el código y se revisará yo no entiendo.

Porque char es para caracteres. no te puede devolver un cero.

Algo estaras haciendo mal.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con variable char

Publicado por Horacio Navarro (5 intervenciones) el 14/06/2002 17:34:10
Bien, realmente el codigo no hace alfo especifico, analia, exactamente char es para caracteres, pero c maneja los llamados caracteres de escape (\n salto de linea, \b retroceso, \0 fin de archivo etc....)

Miren el siguiente codigo....
#include <stdio.h>
#include <conio.h>
main()
{
char Resp;
do
{
clrscr();
printf ("\n Introduce un caracter: ");
scanf ("%c", &Resp);
printf ("\n El caracter introducido es: %c", Resp);
getch();
}
while (Resp!='x');
}

Ahora al ejecutar observen como la primera vez si se detiene en el scanf, pero la segunda no, la tercera si, y la cuarta no, es decir por cada paso, brinca una vez el scanf (lo cual no deberia de ser), si corren el codigo utilizando F7 se podran dar cuenta ke Resp inicia con '\0', y al pasar el primer printf cambia su valor a '\n' porke si nunca hay ni asignacion ni lectura (ni scanf, ni getch o getchar), entonces porke pasa eso, si lo prueba con un for en vez de do, veran como sigue haciendo lecturas dobles, ahora una pista mia es ke tal vez los codigos del teclado sean dobles, cual si fueran caracteres especiales y por ello haga eso, pero no he podido dar con el, realmente es una especie de capricho mio el tratar de resolver esto, espero esto les ayude a comprender mi problema y les agradezco mucho su interes, saludos a todos........
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con variable char

Publicado por Analia (49 intervenciones) el 15/06/2002 01:14:28
Hola Horacio !!

Para mi entender eso definitivamente no se puede hacer..
Ya que para mi entender acá hay que trabajar con cadenas de caracteres para comparar...

No sé que opinaran los expertos pero para mi esto que queres hacer vos ingresar caracteres no se puede. /*lógico que cadenas si pero de esta forma no..
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con variable char

Publicado por Horacio A. Navarro G. (5 intervenciones) el 15/06/2002 18:02:09
Gracias Analia, de hecho si se puede, una posible aplicacion seria, si deseas hacer un juego controlado por las flechas del teclado, tienes ke evaluar teclas, es decir caracteres, para poder saber ke tecla presiono, pero bien, alguien me dijo ke es porke en el buffer se keda almacenado \n y ke esto lo solucionas de la siguiente forma:

while (Resp!='\n')
scanf ("%c",%Resp);

Ahora si no se pudieran tener caracteres cual seria el motivo de permitir declarar una variable caracter, ademas las cadenas de caracteres en lenguaje c no son mas ke una estructura de tipo cola implementada con punteros, y cada nodo es un caracter, de cualquier forma te agradezco mucho tu interes, saludos.....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Hola Horacio

Publicado por Analia (49 intervenciones) el 15/06/2002 23:54:26
Sabes que me lo puse a hacer y despues me dije NO esto definitivamente No se puede hacer porque en la declaración tendrias que poner las letras que querrias mostrar, eso según lo que habia leido por vos. Pensé que recien empezabas y no sabias punteros, vectores, etc...

Sepa disculpar mi ignorancia.

Lo voy a probar..

Saluditos YO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Hola Horacio__lo voy a hacer pero...

Publicado por Analia (49 intervenciones) el 16/06/2002 00:04:33
Igual sigo pensando que eso que escribistes esta mal..

Porque leí todo..

y sigo pensando lo mismo..

Pero igual lo voy a hacer a ver que me dá

<saluditos. YO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Hola Horacio__lo voy a hacer pero...

Publicado por Horacio (5 intervenciones) el 17/06/2002 06:46:19
No es ke este mal lo ke yo escribi, parece ser un bug de c, la solucion ke te propuse el otro dia esta mal, lo ke a mi me sugirieron es:

while (getch()!='\n')
scanf ("%c", Resp);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar