Como rodar codeblocks no ubuntu 20.04

boa tarde senhores

vamos la

Instalei a IDE code blocks 20.03 no ubuntu 20.04

A IDE detecta o compilador conforme mostra a figura detect.jpg mas quando executa o codigo não Exibe sequer um printf como mostra a figura codeblocks.jpg

Alguém sabe o que eu devo fazer

Utilizo gcc versão como mostra a figura versiongcc.jpg

Quando executo o programa pelo terminal ele funciona normalmente ele exibe a mensagem



Cara, já tentou usar o Visual Studio Code? Por lá você terá menos dores de cabeças. Só instalar a extensão C da própria Microsoft e o Code runner (o primeiro que aparece ao buscar).

Sim man, já tentei usar o VS code porem ele apresenta outros problema
ele executa o código, porém ele pula a parte dos ifs e cai para o teste o teste do while como mostra a figura


por isso tentei o usar a IDE codeblocks mas esta apresentando este como reportei em cima

Já tentou rodar este código no onlinegdb ou em algum outro compilado online de sua escolha? Pode ser erro de lógica e não do VS Code em si…
Tenta trocar também o “fflush” pelo getchar, pois o fflush as vezes buga o buffer ao em vez de limpar. Tenta substituir os vários “ifs” por um switchcase também…

Se fosse problema de compilação ele não iria executar o código, ja tirei o fflush, so não testei usando switch mas não era para dar erro não, porque o if é um comando não tem porque dar erro. olha estou revoltado com estes softwares kkkk

Relaxa, jovém Padawan. Área ee TI é assim mesmo kkkkkkk

Não é possível cara que esta pulando o código, acabei de refazer o código usando switch apresenta o mesmo erro,


no gcc também

no compilador GDB

Na verdade, o fflush foi feito para output. Ele flusha o output buffer da stream.

Em algumas implementações, se a stream estiver aberta para leitura, ele limpa o buffer de input, mas isso não é garantido nem o objetivo da existência da função.

1 curtida

Oi Caio.

Ele não está pulando o código.

o getchar para o op foi executado e ele recebeu, provavelmente, um ‘\n’.
Um jeito de você debugar o que está sendo recebido, além do debug, é dar um

printf("<%c>\n", op);

logo depois do getchar
A mesma coisa para a variável var.

1 curtida

Bom dia Chimpa_theist

realmente a variável op esta recendo \n,

mas o que eu devo fazer para que ele execute o código ?

Existem muitas maneiras, Caio.

Uma delas é dar um getchar logo depois do scanf. Isso vai pegar o ‘\n’ que ficou no input buffer da stream.

Mas se o usuário digitar mais coisas, não vai resolver.

Outra seria ler linha por linha e fazer o scan na linha lida.

Iria precisar

#include <stdlib.h>

E lá no progama, antes do do-while definir

char *linha = NULL;
size_t linha_sz = 0;

Aí, para pegar o num1, seria

printf(“Entre com num1\n”);
getline(&linha, &linha_sz, stdin);
sscanf(linha, “%f”, &num1);

E pra pegar a op, seria o mesmo formato

printf(“Entre com o operador.\n”);
getline(&linha, &linha_sz, stdin);
sscanf(linha, “%c”, &op);

Antes do return, talvez seja preciso liberar a memória

free(linha);

Eu não testei, mas deve funcionar.

PS : Desculpa. Não era readline, e sim, getline

boa noite chimpa_theist

Fiz o que você disse, acrescentei um scanf no código, mas pra mim isso é redundância, mas funcionou kkkk
bizarro


ainda não consigo entender porque ele recebe \n ele tinha que esperar o usuário entrar com a informação .

Man la em cima eu reportei outro problema sobre o code blocks 20.3 exibir o terminal sem a mensagem, você sabe o que pode ser ?

obrigado ate mais

Também funciona fazendo scanf(" %c"), com um espaço antes do %c. Assim ele desconsidera o \n na entrada

1 curtida

Boa noite Thiago12

Agora sim funcionou bala, vlw

respondido

voce sabe porque o code blocks não aparece mensagem no terminal , eu deixei a duvida mais em cima

@CaioUbuntu Que estranho. É só no CodeBlocks que tá assim?

Tem certeza que você salvou o arquivo depois de editar no Code Blocks? Provavelmente pelo nome do arquivo estar em negrito pode ser um sinal de que você alterou o código e não salvou.

1 curtida

Eu não tenho certeza, mas talvez seja porque você criou o arquivo no diretório ~/Área de trabalho. O CodeBlocks às vezes dá problema pra compilar aí nessa pasta, por que tem espaços no nome. Tente em outro diretório, como na sua pasta pessoal ou Documentos…
Também verifique se você instalou o pacote build-essential (duvido que seja isso, mas só pra ter certeza, dê um sudo apt install build-essential)

Olá. Se você se sentir confortável com Cloud, experimenta o goorm ide, ele é 100% online. Por ele funcionar em web browser, então você pode usa-lo em qualquer OS. Eu uso para estudar Web Developer.

Porque você tá usando stream. No teu exemplo, no qual você entra com 100, 2 e ‘/’, o input buffer da stream seria mais ou menos assim

Quando você dá o getchar(), ele pega o caracter apontado pelo cursor da stream.

1 curtida

Bom dia Thiago12

Obrigado cara, alterei o caminho funcionou ele exibiu a mensagem no code bloks

1 curtida