请你给我满足下列要求的C语言代码 从.csv文件中读取用户(id、用户名、密码、联系方式等)信息 假设原始文件中的数据是乱序的,创建按用户名递增的有 序链表,并以有序链表的方式加载到内存中 实现用户信息的增、删、改、查 将修改后的用户信息写入.csv文件。
时间: 2024-04-10 08:33:30 浏览: 164
解析csv文件,获取需要的信息
下面是满足你要求的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义用户结构体
typedef struct {
int id;
char username[50];
char password[50];
char contact[50];
} User;
// 定义链表节点结构体
typedef struct Node {
User user;
struct Node* next;
} Node;
Node* head = NULL;
// 从CSV文件中读取用户信息并创建有序链表
void loadUsersFromCSV(const char* filename) {
FILE* file = fopen(filename, "r");
if (file == NULL) {
printf("无法打开文件\n");
return;
}
char line[256];
while (fgets(line, sizeof(line), file)) {
User user;
sscanf(line, "%d,%[^,],%[^,],%[^\n]", &user.id, user.username, user.password, user.contact);
addUserInOrder(user);
}
fclose(file);
}
// 将用户信息写入CSV文件
void saveUsersToCSV(const char* filename) {
FILE* file = fopen(filename, "w");
if (file == NULL) {
printf("无法打开文件\n");
return;
}
Node* current = head;
while (current != NULL) {
fprintf(file, "%d,%s,%s,%s\n", current->user.id, current->user.username, current->user.password, current->user.contact);
current = current->next;
}
fclose(file);
}
// 比较两个用户名的大小
int compareUsernames(const char* username1, const char* username2) {
return strcmp
阅读全文