C中的登录程序

问题描述 投票:1回答:1

我是编程新手。我正在尝试创建一个登录程序,其中用户和密码已经存储在“.txt”文档中,但无论用户的输入是什么,它总是显示“用户或密码不正确!”。这就是我所做的:

#include <stdio.h>
#include <string.h>

int sign_In(char user[30], char pass[30]){
    FILE *p;
    char user2[30], pass2[30];

    p= fopen("users.txt", "r");


    fscanf(p,"User: %s Password: %s",user2,pass2);

    if( (strcmp(user,user2)==0) && (strcmp(pass,pass2)==0) )
        printf("\nUser and password correct!!!");
    else
        printf("\nUser or password incorrect!\n\n");

    printf("\n\n");

    fclose(p);
    return 0;
}

int main(){
    char user[30], pass[30];

    printf("\nUser:");
    scanf("%s",user);
    printf("\nPassword:");
    scanf("%s",pass);

    sign_In(user, pass);

}

我究竟做错了什么?

c
1个回答
2
投票

这段代码实际上对我来说非常好,所以我假设您可能没有正确创建users.txt文件。确保它采用您设置的格式:

用户:Space Chosen_Username空格密码:Space Chosen_Password

就文档的格式而言,包括空格在内的所有内容都应与fscanf调用相匹配。当您在提示符下输入输入的用户名时,请不要添加额外的空格,否则它可能与您在fscanf调用中的格式不匹配。

否则,代码完美无缺。只要users.txt格式正确。

© www.soinside.com 2019 - 2024. All rights reserved.