gpt4 book ai didi

c - 如何从C中的单个文件中提取多个字符串

转载 作者:行者123 更新时间:2023-11-30 20:58:39 25 4
gpt4 key购买 nike

再见,

看下面我的代码。这是登录身份验证的标准程序。在文件“Login.txt”中找到 1 个包含用户名的字符串。程序启动时,要求输入用户名,然后将此字符串与“Login.txt”中保存的字符串进行比较,如果相等则成功,如果不相等,则只能尝试3次,直到程序结束;我需要在“Login.txt”中保存 3 个字符串(用户名),例如:布拉德大卫彼得

所以我需要将“Login.txt”中的每个字符串分别调用到 char buf[],然后调用 scanf 函数(例如 David),在对两者使用 strcmp 后,结果两个字符串应该相等其他;

问题:如何“单独”提取多个字符串并将每个字符串从 C FILE .txt 中的单个文件中放入不同的 char buf[] 中?

提前谢谢您。

代码:

int main() {

system("cls");
FILE *p;
int n=3,b,v;
char buf[20],buf2[20],Login[20],Password[20];
p=fopen("Login.txt","rt");
fgets(buf,20,p);
fclose(p);
p=fopen("Password.txt","rt");
fgets(buf2,20,p);
fclose(p);
printf("%s",buf);
do {
printf("Please Log in. You have %d tries\n",n);
printf("Enter your Login\n");
scanf("%s",Login);
printf("\nEnter your Password\n");
scanf("%s",Password);
printf("\nCompare Login = %d Compare Login = %d\n",strcmp(buf,Login),strcmp(buf2,Password));
n--;
b=strcmp(buf,Login);
v=strcmp(buf2,Password);

if (v==0&&b==0){
printf("\nYou logged in\n\n");
break;
}
else if (n==0) {
printf("\nYou failed\n\n");
}
}
while (n!=0);
}

最佳答案

这听起来像是您在问如何从同一个文件中获取您的用户名和密码。是吗?

为了从单个字符串 (buf) 中提取用户名和密码,您需要使用 delimiter将他们分开。假设 Login.txt 如下所示:

MyUsername1
MyPassword1
MyUsername2
MyPassword2

在这种情况下,delimiter是行结束字符(在 Windows 上为 \r\n)。

您需要使用 strtok 将存储在 buf 中的字符串分开。或strsep (参见an example)。

您需要进行一些学习才能弄清楚到底如何做。如果我只是为你编写一个功能齐全的程序,你将学不到任何东西;所以我不会那么做。

关于c - 如何从C中的单个文件中提取多个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51142757/

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