Pessoal estou com uma dúvida extremamente iniciante.
Com a finalidade de iniciar na linguagem C e entender os inteiros, caracteres, floats, etc eu estou tentando rodar um programa muito simples. Estou trabalhando com o Ubuntu e com o Geany 1.36.
Na verdade são duas dúvidas:
1) Se trabalho com windows tenho a biblioteca conio.h para trabalhar com caracteres. Se trabalho no Linux/Unix não tenho tal biblioteca. Isso quer dizer que se eu desenvolver um código em um sistema operacional ele não roda no outro? Como resolver essa questão e rodar em qualquer plataforma se esse for o caso?
2) Vou postar um programa que funciona e um que não funciona, tudo que eu fiz foi acrescentar uma variável a mais e pedir a "mesma coisa" que no programa funcional. Se alguém puder me dizer o motivo de rodar um e não rodar o outro (corretamente) será uma ajuda e tanto.
Vamos para o programa funcional:
#include <stdio.h>
int main ()
{
char Ch1;
int num1;
float num2;
printf ("Como são as saídas das diferentes variáveis \n");
printf ("Digite um caractere (somente um): ");
scanf ("%c", &Ch1);
printf ("Digite um número inteiro: ");
scanf ("%d", &num1);
printf ("Digite um número não inteiro: ");
scanf ("%f", &num2);
printf ("\n\n");
printf ("O caractere digitado foi: %c \n", Ch1);
printf ("O número inteiro digitdo foi: %d \n", num1);
printf ("O número não inteiro digitdo foi: %f \n", num2);
return (0);
}
Neste código a saída é exatamente a esperada.
O problema está neste segundo e também simples programa:
#include <stdio.h>
int main ()
{
char Ch1;
char Ch2; /* Acrescentei em reção ao programa anterior */
int num1;
float num2;
printf ("Como são as saídas das diferentes variáveis \n");
printf ("Digite um caractere (somente um): ");
scanf ("%c", &Ch1);
printf ("Digite um caractere (somente um): "); /* Acrescentei em reção ao programa anterior */
scanf ("%c", &Ch2); /* Acrescentei em reção ao programa anterior */
printf ("Digite um número inteiro: ");
scanf ("%d", &num1);
printf ("Digite um número não inteiro: ");
scanf ("%f", &num2);
printf ("\n\n");
printf ("O caractere digitado foi: %c \n", Ch1);
printf ("O número inteiro digitdo foi: %d \n", num1);
printf ("O número não inteiro digitdo foi: %f \n", num2);
printf ("O código ASCII referente ao caractere digitado é: %d \n", Ch2); /* Acrescentei em reção ao programa anterior */
return (0);
}
Aqui não consigo inserir o segundo caractere (Ch2). Já tentei de várias formas e nada. Alguém sabe me dizer onde estou errando por favor?
Desde já agradeço.