Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: ruben04 en 25 de Julio 2017, 20:34
-
Hola! ¿me podrian ayudar con este tema?
Estoy tratando de buscar dentro de un fichero que contiene nombres y contraseñas
y yo quiero buscar el nombre por medio de la clave pero no me sale.
Me mustra el pasword que ingreso pero no entra al if
Si alguien me lo pudiera corregir...
Gracias
void leerPasw(char frase[])
{
int i=0;
cout.flush();
do
{
frase[i] = (unsigned char)getch();
if(frase[i]!=8) // no es retroceso
{
cout << '*'; // muestra por pantalla
i++;
}
else if(i>0) // es retroceso y hay caracteres
{
cout << (char)8 << (char)32 << (char)8<<(char)13;
i--; //el caracter a borrar e el backspace
}
cout.flush();
}while(frase[i-1]!=13); // si presiona ENTER
cout << endl;
}
int main()
{
char pasw[10];
char nombre[20];
char buscpasw[10];
ifstream abrir;
string encabezado;
abrir.open("datos.txt");
getline(abrir,encabezado);
cout <<" Ingrese password:\n ";
leerPasw(buscpasw);
abrir>>nombre;
cout<<endl;
cout<<"\nMOSTRAR PASWORD: "<<buscpasw;
while(!abrir.eof())
{
abrir>>pasw;
if(pasw==buscpasw)
{
cout<<"\nBIEN VENIDO";
cout<<"\n"<<nombre;
system("pause");
}
else
{
cout<<"\n pasword no existe ";
}
abrir>>nombre;
}
abrir.close();
cout<<"\n\n";
system("pause");
return 0;
}
-
Hola ruben04, para escribir en los foros es conveniente que leas el hilo https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0, que pongas un título más descriptivo a una consulta, que expliques con mayor detenimiento, y que pegues el código completo con el que estás trabajando. En este caso también sería conveniente un ejemplo del contenido que puedas tener en un fichero "datos.txt"
El problema puede derivar del tipo de variables que estás usando y de la forma de comparar strings.
Para comparar strings debe usarse la función compare, que dispone de diferentes signaturas.
Ejemplo explicativo sobre la comparación de strings en C++:
// comparing apples with apples
#include <iostream>
#include <string>
int main ()
{
std::string str1 ("green apple");
std::string str2 ("red apple");
if (str1.compare(str2) != 0)
std::cout << str1 << " is not " << str2 << '\n';
if (str1.compare(6,5,"apple") == 0)
std::cout << "still, " << str1 << " is an apple\n";
if (str2.compare(str2.size()-5,5,"apple") == 0)
std::cout << "and " << str2 << " is also an apple\n";
if (str1.compare(6,5,str2,4,5) == 0)
std::cout << "therefore, both are apples\n";
return 0;
}
Saludos