这是文本文件
Username:user1 Password:pass1
Username:user2 Password:pass2
我想从文本中读取用户名和密码。问题是没有办法改变文本的格式。我试图阅读,但由于冒号 (:) 之间没有空格,它给出整个 username:user1
作为字符串,但我只想要 user1。我提到了this问题,但它没有帮助,因为冒号之间没有空格。
我试过了:
while ((fscanf(fp,"Username:%s Password:%s",username,password))!=EOF)
但是它在 user1 之后给出了许多未定义的字符并且循环永远不会结束。
最佳答案
试试下面的代码:
#include <stdio.h>
#include <string.h>
int main (int argc, char *argv[])
{
char username[128];
char password[128];
FILE *fp;
int ret;
fp = fopen("read.txt", "r");
if (!fp) {
printf("Failed to open a file\n");
return 1;
}
while (1) {
ret = fscanf(fp, "Username:%s Password:%s\n",username,password);
if (ret == EOF)
break;
if (ret == 2)
printf("%s %s\n", username, password);
else {
printf("%d\n", ret);
perror("fscanf:");
break;
}
}
fclose(fp);
return 0;
}
关于c - 在 c 中使用 fscanf() 从格式化的测试文件中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47304287/