我有一些结构写入二进制文件。假设这些结构仅包含char name[20]
作为成员。
我可以通过 fseek()访问二进制文件的每一行,并通过 fread()进行读取,但是现在我需要一个函数来按字母顺序对这些名称进行排序单个结构。
我认为主要的问题是将所有这些单个字符串放入char数组中,但是我该怎么办呢?
#include <stdio.h>
#include <stdlib.h>
typedef struct {
char name[20];
} user; //struct user
int main() {
user list;
int read = 1;
FILE *input = NULL;
if( (input = fopen("user.dat", "rb") ) == NULL) {
printf("Error in opening.");
}
else {
while( read != 0)
{
read = fread(&list, sizeof(user), 1, input);
if ( read > 0) {
static int id = 1;
printf("\nUSER n.%d ------> %s", id, list.name);
id++;
}
}
}
}