我需要你的帮助。几个小时以来我一直坚持这个问题,找不到可以帮助我的答案。我一直在尝试使用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
}
}
}
答案 0 :(得分:0)
仔细查看gets()和fgets()将返回的内容......它不仅仅是可见字符。即。
fgets函数从输入流参数中读取字符串 将它存储在str中。 fgets从当前流中读取字符 位置和包括第一个换行符
因此您可能将“fred \ n”与“fred \ r \ n”
进行比较