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 vuestras ideas.