C语言将文件中的账号密码读取到结构体数组中
时间: 2024-09-24 11:13:15 浏览: 46
在C语言中,你可以使用`stdio.h`库中的函数来读取文件并将数据存储在一个结构体数组中。假设你有一个包含账号和密码的结构体,例如:
```c
typedef struct {
char username[50];
char password[50];
} Account;
Account accounts[10]; // 结构体数组,最多容纳10条记录
```
首先,你需要打开文件,然后循环读取每行数据并解析成结构体:
```c
#include <stdio.h>
#include <stdlib.h> // 用于获取文件大小等
int main() {
FILE *fp;
char line[100]; // 存储每一行的数据
size_t i = 0; // 数组索引
fp = fopen("accounts.txt", "r"); // 打开文件(假设文件名为accounts.txt)
if (fp == NULL) {
perror("Error opening file");
return 1;
}
while (fgets(line, sizeof(line), fp)) { // 逐行读取
char* comma = strchr(line, ','); // 查找逗号分隔符
if (comma) *comma = '\0'; // 移除逗号
Account current_account;
sscanf(line, "%s,%s", current_account.username, current_account.password); // 解析行数据到结构体
accounts[i++] = current_account; // 将结构体添加到数组
}
fclose(fp);
if (i >= sizeof(accounts) / sizeof(Account)) {
printf("Warning: More accounts found than array can hold.\n");
} else {
printf("Accounts read successfully:\n");
for (size_t j = 0; j < i; j++) {
printf("Username: %s, Password: %s\n", accounts[j].username, accounts[j].password);
}
}
return 0;
}
```
阅读全文