读者:怎样对多于内存的数据排序?
小林:你可以用 “外部排序”法。基本的思想是对数据分段进行排序, 每次的大小尽可能多的填入内存中, 把排好序的数据段存入暂时文件中,再归并它们。如果你的操作系统提供一个通用排序工具, 你可以从程序中调用。
读者:怎样在 C 程序中取得当前日期或时间?
小林:只要使用函数 time(), ctime(), localtime() 和/或 strftime() 就可以了。下面是个简单的例子:
#include <stdio.h>
#include <time.h>
int main()
{
time_t now;
time(&now);
printf(“It’s %s”, ctime(&now));
return 0;
}
用函数 strftime() 可以控制输出的格式。如果你需要小于秒的解析度,
读者:我知道库函数 localtime() 可以把 time t 转换成结构 struct tm,而 ctime() 可以把 time t 转换成为可打印的字符串。怎样才能进行反向操作, 把 struct tm 或一个字符串转换成 time t?
小林:ANSI C 提供了库函数 mktime(), 它把 struct tm 转换成 time t。把一个字符串转换成 time t 比较难些, 这是由于可能遇到各种各样的日期和时间格式。某些系统提供函数 strptime(), 基本上是 strftime() 的反向函数。
正文完