【发布时间】:2016-04-07 13:14:51
【问题描述】:
对于我们的考试练习表,我们必须使用河流数据创建一个结构。结构是:
struct river
{
char name[40]; //name of river max 40 char long
int length;
int drainage_area;
}
数据应该使用名为 data.txt 的文件从最大到最小的河流长度进行组织。该文件包含以下信息:
尼罗河 6650 334900
亚马逊 6400 6915000
长江6300 1800000
密西西比-密苏里 6275 2980000
叶尼塞-安加拉-色楞格 5539 2580000
黄色5464 745000
Ob-Irtysh 5410 2990000
刚果-Chambeshi 4700 3680000
所以我知道使用函数 qsort(),你需要一个比较函数。但是,当涉及文件时,我不太确定如何执行此操作。我有以下比较功能(一般比较功能):
int compare_rivers(void *r1, void *r2)
{
int *_r1 = (int *)r1;
int *_r2 = (int *)r2;
if( *_r1 > *_r2)
{
return -1;
}
if (*_r1 == *_r2)
{
return 0;
}
return 1;
}
我的问题是:如何实现compare函数然后main?我知道如何打开和读取文件,但这与使用数组有什么不同吗?
解释会很有帮助!我不是要一个完整的代码。我只想要一个解释/示例我将如何做到这一点!提前致谢!
【问题讨论】: