C/Visual C - Funcionamiento extraño de c en linux debian

 
Vista:

Funcionamiento extraño de c en linux debian

Publicado por soyyo (1 intervención) el 16/03/2005 20:54:26
Hola a todos estas últimos semanas me he estado mudando de windows a linux y todo bien excepto el c, no consigo que nada haga lo que espero que debería hacer, os pongo un ejemplo de código fuente y resultado a ver que opinais, gracias.
--------CODIGO--------
/* Created by Anjuta version 1.2.2 */
/* This file will not be overwritten */
#include <stdio.h>

int main(){
char ipalabra[100]="Esta cadena\0";
char comprovar="A";

printf("%c - %s\n",comprovar,&ipalabra);
printf("cambia la cadena de texto\n");
scanf("%s",&ipalabra);
//aqui voy a hacer una comprovacion, voy a poner un
//fflush y un getchar y se lo pasa sin pulsar ninguna
//tecla

fflush(stdin);
comprovar=getchar();
printf( "\nHas elegido: %c", comprovar );
fflush(stdin);
printf( "\nHas elegido: %c", getchar() );
fflush(stdin);
printf( "\nHas elegido: %c", getchar() );
fflush(stdin);
printf( "\nHas elegido: %c", getchar() );


return(0);
}
------------RESULTADO-------------
ø - Esta cadena //DE DONDE A SALIDO ESE "ø" , NO LO ENTIENDO.
cambia la cadena de texto
La cambio y pulso enter //DESDE AQUI EN ADELANTE NO PULSO NADA.

Has elegido:
Has elegido: c
Has elegido: a
Has elegido: m //AQUI FINALIZA EL PROGRAMA.
-----------OTRO CODIGO MAS SIMPLE------
#include <stdio.h>

int main(){
char ipalabra[100]="Esta cadena\0";
char comprovar="h";

printf("%c - %s\n",comprovar,&ipalabra);
//aqui voy a hacer una comprovacion, voy a poner un
//fflush y un getchar y se lo pasa sin pulsar ninguna
//tecla
fflush(stdin);
comprovar=getchar();
printf( "\nHas elegido: %c", comprovar );
fflush(stdin);
printf( "\nHas elegido: %c", getchar() );
fflush(stdin);
printf( "\nHas elegido: %c", getchar() );
fflush(stdin);
printf( "\nHas elegido: %c", getchar() );

return(0);
}
--------RESULTADO-------------
˜ - Esta cadena //De donde sale ese caracter vacio si la varible era h
123456789 //yo aqui he escrito del 1 al 9 seguido y enter.

Has elegido: 1
Has elegido: 2
Has elegido: 3
Has elegido: 4

----------------------------------------
Gracias por buestras ideas.
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