PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.
Moderadores: Administradores, Moderadores
por MRebelo » Segunda Mai 29, 2006 15:58
Boas...precisa de uma ajuda...
Preciso fazer uma pequena função p'ra ler uma palavra passe, mas queria que essa mesma palavra passe não fosse vista no monitor, isto é a medida que o utilizador introduzisse um caracter este transformava-se num *...
Sei que preciso ler caracter a caracter, mas primeiro não o tenho conseguido fazer e depois tenho o problema de conseguir parar o ciclo pois não sei como o defenir para parar quando se carrega ENTER...
Por Favor agradecia uma ajuda urgente, se não perceberam aquilo que eu preciso digam que eu tento esclarecer...
Desde já muito obrigado a todos...
-
MRebelo
- Novato

-
- Mensagens: 9
- Registado: Terça Mai 09, 2006 14:18
por Moebius » Segunda Mai 29, 2006 18:39
Para substituires os caracteres terás de procurar por "masking".
Para parares quando carregas em ENTER tens que comparar com "\n" que é o valor da propria tecla ENTER
EDIT: Se o \n não funcionar terás de descubrir qual o valor ASCII da tecla enter.
Acer 7720G - Core 2 Duo T5250 - 2048 Mb RAM - 250 GB HD - 17" WXGA - nVidia Geforce 8400M GS 256 Mb
Shortly will be running on
Ubuntu Gnome, Firefox and Thunderbid
-
Moebius
- Membro de Prata

-
- Mensagens: 136
- Registado: Segunda Out 06, 2003 18:28
- Localização: Lisboa ou Madeira, conforme o mês do ano
-
por MRebelo » Segunda Mai 29, 2006 19:15
Brigado, mas como posso comparar com o código Ascii???em Pascal eu sabia agora em C na sei mas ainda vou tentar com "\n", depois digo alguma coisa...
-
MRebelo
- Novato

-
- Mensagens: 9
- Registado: Terça Mai 09, 2006 14:18
por vamosAeles » Segunda Mai 29, 2006 20:19
Mas já tens funções de biblioteca que fazem isso por ti, a não ser que isso seja para algum trabalho que algum professor eventualmente pediu.
[[]]
-
vamosAeles
- Membro de Prata

-
- Mensagens: 206
- Registado: Quarta Jan 04, 2006 21:29
- Localização: Lisboa/Proença
por MRebelo » Segunda Mai 29, 2006 20:26
IA mas se me pudesses dizer quais eram essas funções era fixe....essa função vai entrar num trabalho, não é propriamente o trabalho nem pc mais ou menos, isto +e só um promenor...
-
MRebelo
- Novato

-
- Mensagens: 9
- Registado: Terça Mai 09, 2006 14:18
por vamosAeles » Segunda Mai 29, 2006 23:27
Ve a lib <pwd.h>...ou <unistd.h>...ja nao me lembro, o nome das funções é getpass() e getpassphrase()
[[]]
-
vamosAeles
- Membro de Prata

-
- Mensagens: 206
- Registado: Quarta Jan 04, 2006 21:29
- Localização: Lisboa/Proença
por MRebelo » Terça Mai 30, 2006 15:09
O problema é que a livraria pwd.h, não existe em nenhum compilador de C para Windows, pelo menos que eu conheça, eu sei cm usar a pwd, mas sem a livraria não th hipotese...
Até tentei arranjar essa livraria, mas depois da-m falta de outras librarias que a pwd.h pede...
Se alguém souber de um compilador que tenha ou conheça um compilador para windows com a pwd.h, agradeço...
-
MRebelo
- Novato

-
- Mensagens: 9
- Registado: Terça Mai 09, 2006 14:18
por vamosAeles » Terça Mai 30, 2006 17:55
Interessante, nao sabia disso.
Mas fiquei curioso e achei uma maneira de fazer isso em windows
(pelo menos em Visual Studio bule fixe)
main(){
char pass[30];
char c;
int i = 0;
while(1){
c = getch();
if(c == 13 || c == 10){
pass[i++] = 0;
break;
}
pass[i++] = c;
}
printf("Vamos ver a pass que nao apareceu: %s\n", pass);
}
-
vamosAeles
- Membro de Prata

-
- Mensagens: 206
- Registado: Quarta Jan 04, 2006 21:29
- Localização: Lisboa/Proença
por MRebelo » Sexta Jun 02, 2006 19:52
Brigadão pela ajuda....
Ia infelizmente compiladores para windows têm problemas de falta de livrarias e mesmo que uma pessoa tente arranjar na net ainda ficam a faltar mais....
è mm mt mau...Brigado pela ajuda
-
MRebelo
- Novato

-
- Mensagens: 9
- Registado: Terça Mai 09, 2006 14:18
por r3pek » Quarta Jun 14, 2006 15:12
Só quero fazer 2 comentariozinhos......
vamosAeles Escreveu:Interessante, nao sabia disso.
Mas fiquei curioso e achei uma maneira de fazer isso em windows
(pelo menos em Visual Studio bule fixe)
main(){
char pass[30];
char c;
int i = 0;
while(1){
c = getch();
if(c == 13 || c == 10){
pass[i++] = 0;
break;
}
pass[i++] = c;
}
printf("Vamos ver a pass que nao apareceu: %s\n", pass);
}
Isto nao funciona se a pass for >= a 30 caracteres
@MRebelo
Por favor, não digas livrarias pk nao é isso que elas sao.... sao BIBLIOTECAS! library em linguês ker dizer biblioteca, não livraria que seria Book Shop!
Gentoo Developer
(kernel/amd64/mobile-phone)
-
r3pek
- Membro de Prata

-
- Mensagens: 100
- Registado: Quarta Mar 03, 2004 13:22
-
por Asgorath » Sexta Jun 16, 2006 9:33
Pwd.h encontras em as versoes do UNIX.
Jorge
Intel Core 2 Quad Q9450 - Cache 12MB - 4x2,66GHz - FSB 1333MHz || abit IP35P ||
4G Kingston 800 Mhz || XFX GeForce 9800 GX2 1G ddr3 || WD5000AAJS 500Gb Sata 2 Raid 0 ||
Samsung SyncMaster 940nw || |
|| Caixa A+El-Diablo || Creative XMod
-
Asgorath
- Membro de Ouro

-
- Mensagens: 645
- Registado: Segunda Out 31, 2005 10:45
- Localização: C:\Portugal\Castelo Branco
-
Voltar para Programação
Quem está ligado:
Utilizadores a ver este Fórum: Nenhum utilizador registado e 4 visitantes