Ir ao conteúdo

C output com infinitos numeros sequenciais mas estranhos


Ir à solução Resolvido por Um mero usuário,

Posts recomendados

Postado
Spoiler


#include <stdlib.h>
#include <stdio.h>
#include <curses.h>

int main()
{
        char menu = ' ';
        while (menu != 'x')
        {
                menu = getch();
                
                        switch (menu)
                        {
                                case 'x':
                                break;
                                default:
                                printf("%d", &menu);
                                break;
                        }
                
        }
        printf("adios");
}

 

estou criando um menu, esse é um projeto base ainda... até aqui está tudo certo (aparentemente)... para compilar, uso o comando:

g++ Palindromos.c -lcurses -o Palindromos

 

e a saída é um monte de 26012899126012899126012899126012899, fica imprimindo até eu encerrar com um ^C, e olhando com calma aparecem todos os caracteres que digitei... antes de eu colocar um print pro menu, os caracteres ainda apareciam, e um membro aqui do CDH me disse que o getch não tem echo, estou perdido...

Postado

@Um mero usuário

40 minutos atrás, Um mero usuário disse:
if ('A' <= menu && menu <= 'Z' || 'a' <= menu && menu <= 'z')

Faça algo do tipo (op1 && op2) || (op3 && op4), pois você quer que algo ocorra se ao menos um dos resultados das operações com && for 1 (verdadeiro). Veja:

if (('A' <= menu && menu <= 'Z') || ('a' <= menu && menu <= 'z'))

 

40 minutos atrás, Um mero usuário disse:
switch (menu)
{
    case 'x':
    break;
    default:
    printf("%d", &menu);
    break;
}

default não precisa de break, o controle já é transferido para fora do corpo com ou sem break, e considere isso também para o último case quando não há default.

Aliás, você usa & quando quer passar o endereço de alguma coisa, e printf() não precisa disso, a não ser que você tenha por exemplo uma string e queira imprimir a partir do elemento de índice x...

switch (menu)
{
    case 'x':
        printf("%d", menu);
    break;
    
    default:
        printf("%d", menu);
}

 

 

40 minutos atrás, Um mero usuário disse:

um membro aqui do CDH me disse que o getch não tem echo

Não mesmo.

Se quer echo habilitado, basta... Não desabilitar :D

Não sei se essa tal curses tem a getche(), que é semelhante à getch(), mas echo permanece habilitado, e se não tiver é só usar aquele exemplo (que não é meu) que postei no outro tópico e retirar a linha em que echo é desabilitado.

  • Obrigado 1
  • Solução
Postado
1 hora atrás, Lucca Rodrigues disse:

e se não tiver é só usar aquele exemplo (que não é meu) que postei no outro tópico e retirar a linha em que echo é desabilitado.

nao se preocupe, usarei o exemplo de alguém que não é você :) só vou aprender esse comando primeiro

 

acho que achei meu erro, coloquei um & no printf, irei testar...

 

edit: ah, e não quero echo mesmo...

 

edit 2: não funcionou... tirei o if e comecou a aparecer 1-1-1-1-1-1-1-11-1-1-1-1- (etc)... com o if ele recebe os dados e parece que não roda o programa, só entra dados (parece....)

 

tá muito estranho, acho que vou tentar a dica que um mero usuario (:)) nesse forum me deu hahaha

 

uma das coisas que sinto falta que tem em portugol e não tem em C é o método de executar o programa... ele ia passo por passo, mostrando as variaveis e tudo bem detalhadamente hahahaha

 

 

 

 

edit 3: descobri a solução... a solução está nesse link: link

  • Haha 1
Postado

@Um mero usuário

47 minutos atrás, Um mero usuário disse:

só vou aprender esse comando primeiro

Não se trata de um comando, acredito que já lhe disse isso.

 

47 minutos atrás, Um mero usuário disse:

acho que achei meu erro, coloquei um & no printf, irei testar...

Pois é...

1 hora atrás, Lucca Rodrigues disse:

Aliás, você usa & quando quer passar o endereço de alguma coisa, e printf() não precisa disso

De nada :D

 

48 minutos atrás, Um mero usuário disse:

edit 2: não funcionou... tirei o if e comecou a aparecer 1-1-1-1-1-1-1-11-1-1-1-1- (etc)... com o if ele recebe os dados e parece que não roda o programa, só entra dados (parece....)

Funcionou, eu testei.

Releia o que eu lhe disse, refaça.

 

49 minutos atrás, Um mero usuário disse:

uma das coisas que sinto falta que tem em portugol e não tem em C é o método de executar o programa... ele ia passo por passo, mostrando as variaveis e tudo bem detalhadamente hahahaha

C é uma linguagem e não tem nada a ver com isso, muito menos Portugol.

Normalmente os ambientes tem sim um depurador, e é essencial saber usar.

Você tem um livro? Uma apostila ao menos? 😕

  • Curtir 1
Postado
1 minuto atrás, Lucca Rodrigues disse:

Não se trata de um comando, acredito que já lhe disse isso.

sim hahaha... só costume falar comando :)

 

2 minutos atrás, Lucca Rodrigues disse:

Funcionou, eu testei.

Releia o que eu lhe disse, refaça.

refiz, funcionou sim... eu coloquei coisas onde não devia e o & continuava lá... tirei ele e iniciei a biblioteca (esqueci disso também) e funcionou.. alzheimer 100% :D

 

3 minutos atrás, Lucca Rodrigues disse:

C é uma linguagem e não tem nada a ver com isso, muito menos Portugol.

Normalmente os ambientes tem sim um depurador, e é essencial saber usar.

Você tem um livro? Uma apostila ao menos? 😕

aprendi logica de programacao por um livro de arduino aqui em casa, e C comecei a me interessar por ser bem próximo de "arduinês"...

sobre o portugol, só comentei, já que acho C e portugol bem parecidos, inclusive a sintaxe...

não estou usando algo do tipo *vamos executar linha por linha* por mais que quisesse não encontrei um negocio desses que se encaixe na minha zona de conforto... eu estou convertendo direto para binário... por isso comentei do portugol, mas foi tipo um desabafo :)

 

foi mal pelo textao e obrigado pela ajuda :)

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!