gpt4 book ai didi

c++ - 从文本文件读取问题?

转载 作者:太空宇宙 更新时间:2023-11-04 14:00:00 25 4
gpt4 key购买 nike

我有一个检查用户名和密码的函数。我有两个文本文件,一个用于单行用户名,另一个用于单行密码。然后我从 txtfile 中读取这些数据并将它们存储为 2 个字符串。然后我将这些与用户使用返回 1 的函数输入的用户名和密码进行比较。但是我的代码给出了错误的输出。

int compare(char C[], char E[])
{
ifstream fil1;
ifstream fil2;
fil1.open("user.txt", ios::in);
fil2.open("pass.txt", ios::in);
char ch1, ch2;
char B[50], F[50];
int i1 = 0, i2 = 0;

while (!fil1.eof())
{
fil1.get(ch1);
F[i1] = ch1;
i1++;
}
F[i1] = '\0';
fil1.close();

while (!fil2.eof())
{
fil2.get(ch2);
B[i2] = ch2;
i2++;
}
B[i2] = '\0';
fil2.close();

int flag;
int X = strlen(E);
int Y = strlen(B);
if (X == Y)
{
if ((strcmp(C, F) == 0) && (strcmp(E, B) == 0))
flag = 1;
else
flag = 0;
}
else
flag = 0;
return flag;
}

即使用户名和密码正确,它也会给出错误的输出。哪里出错了??

最佳答案

简单来说,eof() 仅在我们尝试读取超过文件末尾(超过文件大小)时才返回 true。所以你应该改变代码如下:

while(true)
{
fil1.get(ch1);
if(fil1.eof())
break;
F[i1]=ch1;
i1++;
}

关于c++ - 从文本文件读取问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19713129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com