( Вход | Регистрация | Поиск )

простенькая прога на запрос пароля, язык C, компилятор Turbo C++
Дата обновления: 23.04.2007 - 04:53, перейти к новому сообщению

Elf_XP

Пароль хранится в текстовом документе, при вводе пароля пользователем прога сверяет его с тем ,что прописан в блокноте. Но странное дело, даже если вводишь правильный пароль, прога говорит, типа неверный пароль. Почему?


CODE
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>

int Password();

void main()
{int k;
 if (Password() == 1)
  {
     printf("You entered correct password!\n");
  }
 else
 {
 printf("False!");


 }

 getch();
 }


 int Password()
 {
 const n=10;
 char s[n], p[n];
 FILE *pass;
 pass = fopen("password.txt","rt");
 fgets(s,n,pass);
 printf("Enter password:\n",n);
 gets(p);
 fclose(pass);

 if (strcmp(s,p) == 0)
 return(1);
 else
 return 0;
}



Ответов(1 - 2)

Dif_Jes

Так вроде работает
CODE
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
int Password();
void main()
{
if (Password() == 0)
 printf("You entered correct password!\n");
else
 printf("False!");
getch();
}
int Password()
{
const n=10;
int k;
char s[n], p[n];
FILE *pass;
pass = fopen("password.txt","ra");
fscanf(pass,"%s",s);
printf("Enter password:\n");
scanf("%s", &p);
fclose(pass);
k=strcmp(s,p);
return k;
printf("%d   %s", s,p);
}



·TomSoyer
Группа: Пользователи

Сообщений: 14
Проблема может скрываться не в сравнении слов, а в кодировках. В блокноте, из под Windows используется кодовая страница 1251 а в твоей программе 866