bueno kisiera saber si alguien sabe como aser un programa q pida contraseñas y esto guardarlo en una cadena de caracteres por favor responder con el codigo fuente
bueno kisiera saber si alguien sabe como aser un programa q pida contraseñas y esto guardarlo en una cadena de caracteres por favor responder con el codigo fuente
a me olvide pero al pedir contraseña no aparesca lo q se digita sino asteriscos o puntos
Este programa es demasiado fácil, haría mal en darte el código y evitar que pienses por tí mismo (además me da hueva hacerlo).
Entra a c.conclase.net para que vayas aprendiendo a programar.
Unas pistas:
Para que ponga asteriscos en lugar de las letras, simplemente con con cout<<"*" en un ciclo cada vez que reciba una letra, hasta que presione enter, o con un strlen() para saber cuantos asteriscos debe poner.
La cadena de caracteres es simplemente así:
char cadena[longitud]; en donde longitud es un numero entero para la longitud máxima de la cadena.
Un saludo
Última edición por Giskard; 18-10-2006 a las 05:11
bueno disculpen por no especificarme bien en mi pregunta yo busco una funcion o procedimiento para aser un programa donde te pide una contraseña como la de esta pagina cuando te registras te piden una contraseña y en el lugar donde se tiene q digitar no aparece lo q digitas sino q aparecen asteriscos o en otros casos puntos y estos datos son almacenados por favor si saben sobre alguna funcion q aga esto por favor escribirla en c++ o en asm........
este es mipequeño programa:
#include <fstream.h>
main()
{fstream a;//esto es para crear un texto q almacene la contraseña
char p[256];//esto la cadena q almacenara la contraseña
a.open("micontraseña",io::app);
cout<<"ingrese su contraseña: \n";*/aqui es el problema que despues q salga esto aparesca asteriscos cuando se digite/*
cin>>p;
a<<p;
a.close();
system("pause");
}
despues del mensaje "ingrese su contraseña" escribes un codigo como esto:
Donde ENTER es el valor ascii de la tecla ENTER, cuando esta sea presionada, se indicará que ha terminado de escribir la contraseña. Es un valor entero que ahora no recuerdo, pero trabajando un poquito lo encontrarás.Código:i=0; do{ p[i]=getch(); cout<<"*"; i++; }while(p[i-1] != ENTER);
Suerte
Última edición por Giskard; 19-10-2006 a las 03:49
Creo que lo que quiere hacer spxm no es lo que tu le dices Giskard.
Primero el valor de ENTER en C/C++ puedes ponerlo como salto de linea o sea '\n' y no es necesario asi usar el codigo numerico de la tecla.
Segundo si haces lo que te dice Giskard, despues de leer cada letra imprimiras un asterisco pero eso no te quita de que la contraseña se vea.
Creo que este problema es mas dificil de lo que parece ya que creo que hay que hacer un programa aparte que controle la pantalla del flujo de entrada y es necesario "esconder" lo introducido pero la verdad es que yo no tengo ni idea de como se haria. Si alguien sabe algo sobre el tema se agradeceria porque a mi tambien me interesa ahora. Saludos
bueno lo pude haser me abia olbidado de las funciones de getch y de getche donde el primero recoge lo digitado sin mostrarlo y el otro lo recoge con visualisacion lo malo de estas funciones es q la probe en un compilador antiguo y las letras igual se mostraban pero en el nuevo compilador si resultaban.......grasias GisKard
pero lo ise de esta forma:
#include <fstream.h>
main()
{fstream a;//esto es para crear un texto q almacene la contraseña
char p[256];//esto la cadena q almacenara la contraseña
a.open("c:\\micontraseña.txt",ios::app);//aca se puede crear cualquier tipo de archivo yo elegi txt
cout<<"ingrese su contraseña: ";
p[i]=getch();
while(p[i]!=ENTER)
{cout<<"*";
a<<p[i];
i++;
}
a.close();
system("pause");
}
bueno creo q tendre q repasar mis lecturas de c++................
grasias por las ayudas
Saludos
Ese código funciona? Donde esta inicializado "i"? Además el while ese es totalmente inútil, que se supone que tiene que hacer?
bueno la variavle i me lo olvide ponerlo pero se supone que se inicialisa en int i=0;y char enter='\n';
lo q realisa este pequeño programa es pedir una simple contraseña asta q se presione enter y esta contraseña guardarlo en un archibo de texto q al correr el programa se crea en la direccion especificada.
saludos..
Estoy seguro de haber interpretado bien su pregunta, no sé entonces que crees que quería.Iniciado por Polimeron
Para tu información existen dos funciones distintas en la libreria conio.h:Iniciado por Polimeron
getch(). La función getch retorna el carácter leído desde el teclado. (sin ponerlo en pantalla)
getche(). Lee un solo carácter directamente desde el teclado, mostrando tal carácter en pantalla, a través de la BIOS o por directamente a vídeo.
Por supuesto, también está la función getpass() pero esta no muestra asteriscos en la pantalla, que era lo que quería spxm.
Para más información puedes visitar el siguiente enlace:
http://www.conclase.net/c/Borland/libreria.php?lib=conio
Marcadores