gpt4 book ai didi

c - 如何按字母顺序对文件中的信息进行排序?

转载 作者:行者123 更新时间:2023-11-30 15:25:40 24 4
gpt4 key购买 nike

我有一个很大的代码,但我需要其中一部分的帮助。我创建了这个函数,它从我的 .txt 文件中获取人员信息。

如果我想按字母顺序对其进行排序(并且其 ID 即 123456 早于 132456 - 这可能是单独且可选的),该怎么做?

sortRecord()
{
int b;
int c;
FILE *fp;
fp = fopen("suspectfile.txt", "r");
if (fp)
while ((c = getc(fp)) != EOF)
putchar(c);


fclose(fp);
}

最佳答案

您现在编写的代码将打开该文件,一次读取一个字符,并将这些字符打印回控制台。如果您只需要按排序顺序打印文件内容,而无需稍后操作文件内容,则可以考虑使用 system 命令来运行命令行工具 sort,它会为您完成此操作。例如:

system("sort suspectfile.txt");

这将为您处理所有事情,但它实际上不会将数据加载到您的程序中。

如果您需要将数据加载到程序中然后对其进行排序,那么最好的选择可能是将文件内容加载到数组中(我将把这些详细信息留给您,因为您比其他人更了解文件格式我这样做),然后使用 qsort 函数将数据按升序排列。 qsort 需要您为其提供一个要排序的数组、数组中每个元素的大小、元素的数量以及比较函数。这是您可以使用它的一种方法:

/* String comparison function for use by qsort. The parameters will be
* void*'s that actually point at char*'s.
*/
int string_comparator(const void* one, const void* two) {
return strcmp(*(char**)one, *(char**)two);
}

char** file_contents_array = /* ... load the file ... */
qsort(file_contents_array, /* number of elements in the array */,
sizeof(char *), string_comparator);

您现在已经按顺序排列了文件内容,并且可以对它们执行任何您想要的操作。

希望这有帮助!

关于c - 如何按字母顺序对文件中的信息进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27759782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com