如何从二进制文件中的结构按字母顺序对字符串排序?

时间:2019-05-31 18:24:31

标签: c file sorting struct

我有一些结构写入二进制文件。假设这些结构仅包含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++;
            }
        }
    }
}

0 个答案:

没有答案