使用文本文件中的特定字符串与用户输入进行比较

时间:2014-02-08 20:05:14

标签: c

我需要你的帮助。几个小时以来我一直坚持这个问题,找不到可以帮助我的答案。我一直在尝试使用fgets从文本文件中提取特定字符串,因此我可以将其与用户输入进行比较。但显然我一直在使用的代码配置提升了整个文本文件的内容。我只需要一个字符串,我可以使用stricmp与用户输入进行比较。谢谢!

此代码的目的是确定.txt数据库中是否已存在用户输入的用户名。

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

FILE *myFile;
int main()
{
        FILE *ptr_file;
        char userName[31];
        char userNameDatabase[31];



        printf("Please enter your username: ");
        fflush(stdin);
        gets(userName); //user input



        ptr_file = fopen("MainDatabase.txt","rt"); //the filename
        if (!ptr_file)
        {
        return 1;
        printf("\nWARNING, MAIN DATABASE FILE MISSING");
        }
        while (fgets(userNameDatabase,sizeof(userNameDatabase), ptr_file))
        {

            if (stricmp(userName,userNameDatabase)== 0)
            {
            printf("\n\nYES!!!"); // For testing to see if my code can get into this part
            }
        }
}

1 个答案:

答案 0 :(得分:0)

仔细查看gets()和fgets()将返回的内容......它不仅仅是可见字符。即。

  

fgets函数从输入流参数中读取字符串   将它存储在str中。 fgets从当前流中读取字符   位置和包括第一个换行符

因此您可能将“fred \ n”与“fred \ r \ n”

进行比较