13.3 一个简单的文件压缩程序
程序示例把一个文件中选定的数据拷贝到另一个文件中。该程序同时打开了两个文件,以"r"模式打开一个,以"w"模式打开另一个。该程序(程序清单13.2)以保留每3个字符中的第1个字符的方式压缩第1个文件的内容。最后,把压缩后的文本存入第2个文件。第2个文件的名称是第1个文件名加上.red后缀(此处的red代表reduced)。使用命令行参数,同时打开多个文件,以及在原文件名后面加上后缀,都是相当重要的技巧。这种压缩方式有限,但是也有它的用途(很容易把程序改写成用标准I/O而不是命令行参数提供文件名)。
程序清单13.2 reducto.c 程序
// reducto.c -- reduces your files by two-thirds!
#include
#include
#include
#define LEN 40
int main(int argc, char *argv[])
{
FILE *in, *out; // declare two FILE pointers
int ch;
char name[LEN]; // storage for output filename
int count = 0;
// check for command-line arguments
if (argc < 2)
{
fprintf(stderr,