FórumGdH

Página Inicial do Guia do Hardware

Registrar FAQ Calendário Pesquisar Mensagens de Hoje Marcar Fóruns Como Lidos

Voltar   FórumGdH > Profissional > Programação, scripts, web e banco de dados
Bem-vindo ao FórumGdH
Não se esqueça de se registrar, é grátis . Nós temos 754.122 usuários, convidamos você fazer parte de nossa comunidade também! Se ainda não encontrou o que procura use nossa pesquisa. Esperamos que aprecie nosso trabalho.

Resposta
 
Opções do Tópico
Antigo 08-06-2005, 19:03   #1 (permalink)
Helio Junior
Novo Membro
 
Avatar de Helio Junior
 
Registrado em: May 2004
Localização: Belo Horizonte /MinasGerais
Idade: 24
Mensagens: 86
Reputação: 16 Helio Junior está indo no caminho certo
Enviar mensagem via MSN para Helio Junior
Padrão Equivalente ao readkey em C

Pessoal meu problema é o seguinte:
em pascal eu usava o readkey para que uma variavel do tipo char receba automaticamente o valor que o usuario digitar, sem que ele precise tc enter!
Como faço isto em c?
vlw
__________________
Sera que escolhi informatica pq sou doido ou fiquei doido pq escolhi informatica?
Helio Junior está offline   Responder com Quote
Antigo 08-06-2005, 19:14   #2 (permalink)
jackinabox
Veterano
 
Avatar de jackinabox
 
Registrado em: Nov 2004
Mensagens: 1.055
Reputação: 16 jackinabox está indo no caminho certo
Padrão

Nas bibliotecas padrão não há nenhuma função que funcione dessa forma.
Em bibliotecas não ANSI, pode haver outras funções. Por exemplo, em ambientes/plataformas onde está disponível a biblioteca conio (<conio.h>), há as funções getch() e getche().
No linux uma alternativa para entrada/saída mais sofisticada seria a biblioteca ncurses.
__________________
Jeferson Charles Mayer

"Como é que eu vou enxergar a tal floresta, com todas essas árvores atrapalhando a visão?"
jackinabox está offline   Responder com Quote
Antigo 08-06-2005, 19:55   #3 (permalink)
Helio Junior
Novo Membro
 
Avatar de Helio Junior
 
Registrado em: May 2004
Localização: Belo Horizonte /MinasGerais
Idade: 24
Mensagens: 86
Reputação: 16 Helio Junior está indo no caminho certo
Enviar mensagem via MSN para Helio Junior
Padrão

valeu velho, mas eu achei alguma coisa, é o comando gets, ele nao serve para isto? e como usa-lo?
__________________
Sera que escolhi informatica pq sou doido ou fiquei doido pq escolhi informatica?
Helio Junior está offline   Responder com Quote
Antigo 08-06-2005, 20:09   #4 (permalink)
G-Doria_New
Tô em todas
 
Registrado em: Nov 2003
Mensagens: 1.938
Reputação: 20 G-Doria_New possui ótimo potencialG-Doria_New possui ótimo potencial
Enviar mensagem via ICQ para G-Doria_New Enviar mensagem via MSN para G-Doria_New
Padrão

Eu uso o scanf() para isso.
Vou dar um exemplo do uso do gets:

Código:
#include <stdio.h> char linha[256]; void main() { printf("Digite uma string:\n"); gets( linha ); printf("Você digitou a seguinte string: \n") printf("%s", linha); }
__________________
Vendo PayPal e AlertPay - Cotação:
Até 1000USD, Dólar comercial(venda) + 0,40
Acima de 1000 USD - Dólar Paralelo(venda)
G-Doria_New está offline   Responder com Quote
Antigo 08-06-2005, 20:18   #5 (permalink)
jackinabox
Veterano
 
Avatar de jackinabox
 
Registrado em: Nov 2004
Mensagens: 1.055
Reputação: 16 jackinabox está indo no caminho certo
Padrão

Citação:
Postado Originalmente por Helio Junior
valeu velho, mas eu achei alguma coisa, é o comando gets, ele nao serve para isto? e como usa-lo?
Não, gets() não funciona da maneira que você deseja (leitura de um caracter sem necessidade de [enter]).
Definitivamente, em bibliotecas ANSI não há como fazer isso.
__________________
Jeferson Charles Mayer

"Como é que eu vou enxergar a tal floresta, com todas essas árvores atrapalhando a visão?"
jackinabox está offline   Responder com Quote
Antigo 08-06-2005, 20:19   #6 (permalink)
jackinabox
Veterano
 
Avatar de jackinabox
 
Registrado em: Nov 2004
Mensagens: 1.055
Reputação: 16 jackinabox está indo no caminho certo
Padrão

Citação:
Postado Originalmente por G-Doria_New
Eu uso o scanf() para isso.
scanf() também não serve para fazer o que o Helio Junior deseja.
__________________
Jeferson Charles Mayer

"Como é que eu vou enxergar a tal floresta, com todas essas árvores atrapalhando a visão?"
jackinabox está offline   Responder com Quote
Antigo 08-06-2005, 20:21   #7 (permalink)
G-Doria_New
Tô em todas
 
Registrado em: Nov 2003
Mensagens: 1.938
Reputação: 20 G-Doria_New possui ótimo potencialG-Doria_New possui ótimo potencial
Enviar mensagem via ICQ para G-Doria_New Enviar mensagem via MSN para G-Doria_New
Padrão

Atah...
Penssei que ele só queria fazer com que caracteres ficasem armazenadas em variaveis
Não sou proficional em c desculpem hehehehe, mais to chegando lá hauhauauahua
__________________
Vendo PayPal e AlertPay - Cotação:
Até 1000USD, Dólar comercial(venda) + 0,40
Acima de 1000 USD - Dólar Paralelo(venda)
G-Doria_New está offline   Responder com Quote
Antigo 09-06-2005, 7:02   #8 (permalink)
fabiobabaioff
Newbie
 
Registrado em: Apr 2005
Mensagens: 23
Reputação: 0 fabiobabaioff está indo no caminho certo
Padrão

bem, em C++, vc tem um funcao parecida nas bibliotecas padrao. a funcao getchar()
Código:
#include <iostream> using namespace std; int main() { cout << "Pressione qualquer tecla..."; getchar(); return 0; }
fabiobabaioff está offline   Responder com Quote
Antigo 09-06-2005, 7:23   #9 (permalink)
Helio Junior
Novo Membro
 
Avatar de Helio Junior
 
Registrado em: May 2004
Localização: Belo Horizonte /MinasGerais
Idade: 24
Mensagens: 86
Reputação: 16 Helio Junior está indo no caminho certo
Enviar mensagem via MSN para Helio Junior
Padrão

Valeu galera! obrigado pela atenção! Acontece que tenho que fazer um programa para verificar se um cpf é valido ou não, entao pensei em usar um for e este comando para ir lendo automaticamente cada numero digitado para este vetor de char, depois usaria atoi para converter para um vetor de inteiros.
E com inteiro, tem como fazer a leitura direta?
__________________
Sera que escolhi informatica pq sou doido ou fiquei doido pq escolhi informatica?
Helio Junior está offline   Responder com Quote
Antigo 09-06-2005, 8:32   #10 (permalink)
aylons
General de Pijama
 
Avatar de aylons
 
Registrado em: Mar 2004
Localização: São Paulo
Idade: 27
Mensagens: 3.740
Reputação: 21 aylons possui ótimo potencial
Enviar mensagem via ICQ para aylons Enviar mensagem via MSN para aylons Enviar mensagem via Yahoo para aylons Enviar mensagem via Skype para aylons
Padrão

Não, capture direto como inteiro, depois "descasque" o número, dividindo por dez a cada passo e fazendo as contas de verificação.
__________________
Ayloиs Hazzud, com N invertido
aylons está offline   Responder com Quote
Antigo 09-06-2005, 8:35   #11 (permalink)
Helio Junior
Novo Membro
 
Avatar de Helio Junior
 
Registrado em: May 2004
Localização: Belo Horizonte /MinasGerais
Idade: 24
Mensagens: 86
Reputação: 16 Helio Junior está indo no caminho certo
Enviar mensagem via MSN para Helio Junior
Padrão

Como assim? poderia dar um exemplo?
__________________
Sera que escolhi informatica pq sou doido ou fiquei doido pq escolhi informatica?
Helio Junior está offline   Responder com Quote
Antigo 09-06-2005, 8:38   #12 (permalink)
aylons
General de Pijama
 
Avatar de aylons
 
Registrado em: Mar 2004
Localização: São Paulo
Idade: 27
Mensagens: 3.740
Reputação: 21 aylons possui ótimo potencial
Enviar mensagem via ICQ para aylons Enviar mensagem via MSN para aylons Enviar mensagem via Yahoo para aylons Enviar mensagem via Skype para aylons
Padrão

Assim, pegar cada caracter, transformar em char e converter para inteiro é muito trabalhoso e propenso a erros.

Faz o seguinte:

scanf("%d", n_cpf);

Assim voce vai pegar o numero todo de uma vez soh, como um só inteiro.

Depois, tira o módulo do número por dez, o que vai te dar o último número dele, o menos significativo, por exemplo:

n[1] = n_cpf%10;

Aí você implementa o que quiser. Pode ir colocando em vetores para fazer vários cálculos ou já ir fazendo as contas para conferir.
__________________
Ayloиs Hazzud, com N invertido
aylons está offline   Responder com Quote
Antigo 09-06-2005, 8:46   #13 (permalink)
Helio Junior
Novo Membro
 
Avatar de Helio Junior
 
Registrado em: May 2004
Localização: Belo Horizonte /MinasGerais
Idade: 24
Mensagens: 86
Reputação: 16 Helio Junior está indo no caminho certo
Enviar mensagem via MSN para Helio Junior
Padrão

Valeu maninho, vou tentar agora!
__________________
Sera que escolhi informatica pq sou doido ou fiquei doido pq escolhi informatica?
Helio Junior está offline   Responder com Quote
Antigo 09-06-2005, 15:27   #14 (permalink)
Helio Junior
Novo Membro
 
Avatar de Helio Junior
 
Registrado em: May 2004
Localização: Belo Horizonte /MinasGerais
Idade: 24
Mensagens: 86
Reputação: 16 Helio Junior está indo no caminho certo
Enviar mensagem via MSN para Helio Junior
Padrão

realmente funcionou! mas apenas com o ultimo numero, como faço para ler os anteriores para o vetor?
__________________
Sera que escolhi informatica pq sou doido ou fiquei doido pq escolhi informatica?
Helio Junior está offline   Responder com Quote
Antigo 09-06-2005, 15:35   #15 (permalink)
Helio Junior
Novo Membro
 
Avatar de Helio Junior
 
Registrado em: May 2004
Localização: Belo Horizonte /MinasGerais
Idade: 24
Mensagens: 86
Reputação: 16 Helio Junior está indo no caminho certo
Enviar mensagem via MSN para Helio Junior
Padrão

ja tentei %100 mas leu os dois ultimos
__________________
Sera que escolhi informatica pq sou doido ou fiquei doido pq escolhi informatica?
Helio Junior está offline   Responder com Quote
Antigo 09-06-2005, 16:02   #16 (permalink)
jqueiroz
Highlander
 
Avatar de jqueiroz
 
Registrado em: May 2002
Localização: Tijuca/RJ
Idade: 9
Mensagens: 87.724
Reputação: 778 jqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputação
Padrão

Citação:
Definitivamente, em bibliotecas ANSI não há como fazer isso.
Cara, eu lembro de já ter feito isso, na época do computador a lenha... passava por usar "iocontrol's", e colocar o terminal em modo "raw". Era complicado de fazer e difícil de controlar, pois se o programa fosse interrompido (p.ex. um SIGSEGV), o terminal ficava zicado.

Citação:
realmente funcionou! mas apenas com o ultimo numero, como faço para ler os anteriores para o vetor?
Vc pode dividir o númerão por 10, e repetir o procedimento.
__________________
Visite Quepolis (link de indicação) | "chmod 777 nunca ajudou ninguém" (c) 2002-2010 JQueiroz/FGdH
CCNP: √ ² CCSI: □ | Conheça o Novo Bebuns
jqueiroz está offline   Responder com Quote
Antigo 09-06-2005, 16:22   #17 (permalink)
Helio Junior
Novo Membro
 
Avatar de Helio Junior
 
Registrado em: May 2004
Localização: Belo Horizonte /MinasGerais
Idade: 24
Mensagens: 86
Reputação: 16 Helio Junior está indo no caminho certo
Enviar mensagem via MSN para Helio Junior
Padrão

pessoal me explique por favor, para que serve o comando gets e como usa-lo
__________________
Sera que escolhi informatica pq sou doido ou fiquei doido pq escolhi informatica?
Helio Junior está offline   Responder com Quote
Antigo 09-06-2005, 16:31   #18 (permalink)
aylons
General de Pijama
 
Avatar de aylons
 
Registrado em: Mar 2004
Localização: São Paulo
Idade: 27
Mensagens: 3.740
Reputação: 21 aylons possui ótimo potencial
Enviar mensagem via ICQ para aylons Enviar mensagem via MSN para aylons Enviar mensagem via Yahoo para aylons Enviar mensagem via Skype para aylons
Padrão

Citação:
Postado Originalmente por Helio Junior
ja tentei %100 mas leu os dois ultimos
Explica melhor, não entendi.
__________________
Ayloиs Hazzud, com N invertido
aylons está offline   Responder com Quote
Antigo 09-06-2005, 16:32   #19 (permalink)
Helio Junior
Novo Membro
 
Avatar de Helio Junior
 
Registrado em: May 2004
Localização: Belo Horizonte /MinasGerais
Idade: 24
Mensagens: 86
Reputação: 16 Helio Junior está indo no caminho certo
Enviar mensagem via MSN para Helio Junior
Padrão

http://www-ccs.ucsd.edu/c/stdio.html este site explica a maioria dos comandos e bibliotecas, pena que my english is bad ops:
__________________
Sera que escolhi informatica pq sou doido ou fiquei doido pq escolhi informatica?
Helio Junior está offline   Responder com Quote
Antigo 09-06-2005, 16:35   #20 (permalink)
Helio Junior
Novo Membro
 
Avatar de Helio Junior
 
Registrado em: May 2004
Localização: Belo Horizonte /MinasGerais
Idade: 24
Mensagens: 86
Reputação: 16 Helio Junior está indo no caminho certo
Enviar mensagem via MSN para Helio Junior
Padrão

por exemplo usando o seguinte cpf 056.658.365-50 usando a divisao por 10, retornou 5 e por 100 retornou 65 e assim por diante...
__________________
Sera que escolhi informatica pq sou doido ou fiquei doido pq escolhi informatica?
Helio Junior está offline   Responder com Quote
Resposta


Opções do Tópico

Regras de Mensagens
Você não pode criar tópicos
Você não pode postar respostas
Você não pode anexar arquivos
Você não pode editar suas mensagens

Código vB está Ligado
Smiles estão Ligado
Código [IMG] está Ligado
Código HTML está Desligado
Ir para...


Horários baseados na GMT -3. Agora são 15:35.