PassWord et login

Signaler
Messages postés
216
Date d'inscription
samedi 11 août 2007
Statut
Membre
Dernière intervention
30 mai 2011
-
Messages postés
216
Date d'inscription
samedi 11 août 2007
Statut
Membre
Dernière intervention
30 mai 2011
-
bon soir tout le monde,
j'ais un petit problème..
je veux fair un programme en DEV-C++ qui crée en fichier txt et qui le cripte sa c bon.
Mais le problemme c'est que je veux qu'il y est un pass et un login que le pass que la personne choise.si c'est la promier foix que la personne utilise le programme, je veux que le pass et le login soit stoqué dans un fichier pass.txt.
 quand la personne utilise le programme pour la deuieme foix que le passe et le login saisi par l'utilisateur soit vérifier par le brogramme en utilisent le fichier pass.txt.
commant fair??
ps: svp évité de me métre des racourci en englais quar je ne comprends rien (je c que je doit mi metre mais en attendent) merci.
merci d'avence pour vaut réponse

33 réponses

Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
delete [] cf; pour comparer une chaîne tu peux comparer caractères un par un,  utiliser StrCmp ou associés, asm rep cmps,...et d'autres.
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
asm repe cmps, il se fait tard.
Messages postés
216
Date d'inscription
samedi 11 août 2007
Statut
Membre
Dernière intervention
30 mai 2011

si on mais delete []cf;
sa efface se qui a dedans cf non??
et sa ne marche pas il faut le mêtre ou delete[]cf;
dsl de prendre votre temps mais c le seul truc qui manque a mon project..
et merci pour votre aide.
sa change quoi de comparer lettre par lettre ou non?
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
delete marquera la zone mémoire pointé par cf comme libre.

Utilise delete quand tu n'a plus besoin de la mémoire de cf.

Ne compare pas lettre par lettre. Ca n'apporte rien du tout ici. Utilise strcmp.

C++ (@++)<!--
Messages postés
216
Date d'inscription
samedi 11 août 2007
Statut
Membre
Dernière intervention
30 mai 2011

voila j'ai fais sa :
-----------------------------------------
char pass[10];
fstream f;
int ff;
char *cf;


f.open("pass.txt", ios::in | fstream::binary);
f.seekg(0, ios::end);
ff = f.tellg();
f.seekg(0, ios::beg);
cf = new char [ff];
f.read(cf, ff);
f.close();
delete[]cf;
gets(pass);


if(!strcmp(pass, cf))


{
cout<<"salut";
system("pause");
}
else
{
                                cout<<"non";
system("pause");
}
---------------------------------------
Mais sa ne marche toujours pas ou est l'erreure?
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Tu libère la mémoire pointé par cf avant de faire la comparaison.

C++ (@++)
Messages postés
216
Date d'inscription
samedi 11 août 2007
Statut
Membre
Dernière intervention
30 mai 2011

je vais être soulan mais je l'ais mi :

--------------------
else
{
                                cout<<"non";
system("pause");
}
delete[]cf;
---------------------------
il est toujour dans les {} de main mais sa ne marche toujours pas.
il me dit toujour non meme si le code est le meme
exemple: d
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
ajoute cf[f.gcount()] = 0 immédiatement après f.read

C++ (@++)<!--
Messages postés
216
Date d'inscription
samedi 11 août 2007
Statut
Membre
Dernière intervention
30 mai 2011

dsl sa ne marche toujours pas..
Messages postés
216
Date d'inscription
samedi 11 août 2007
Statut
Membre
Dernière intervention
30 mai 2011

C'est bon sa marcher j'ais trouver, comme le pass.txt je l'avais écris avec DEV-C++, il me m'était un retour à la ligne alors le code, n'ais plus  pour le programme d mais d+retour à la ligne se qui est impossible à fair donc le code est toujours faux.
 merci beaucoup pour ton aide et aussi tous les autres qui mon aidé.
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Ceci fonctionne parfaitement pour moi:

int main(void)
{
    char *lpBuffer, lpInput[32];
    int iFileSize;
    fstream fsFile("d:\\test.txt", ios::in);

    fsFile.seekg(0, ios::end);
    iFileSize = fsFile.tellg();
    fsFile.seekg(0, ios::beg);

    lpBuffer = new char[iFileSize+1];

    fsFile.read(lpBuffer, iFileSize);
    lpBuffer[fsFile.gcount()] = 0;

    cin >> lpInput;

    if(!strcmp(lpBuffer, lpInput)) cout << "OK" << endl;
    else cout << "NON" << endl;

    delete[] lpBuffer;

    return 0;
}

C++ (@++)<!--
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Oups. Trop tard.

Remplace:
cf = new char [ff];
par
cf = new char [ff+1];

sinon tu n'auras pas assez de place pour le 0 de fin de chaine.

C++ (@++)<!--
Messages postés
216
Date d'inscription
samedi 11 août 2007
Statut
Membre
Dernière intervention
30 mai 2011

ok et merci encors