-
113. 如果使用任何一种”w”模式打开一个已有的文件,文件内容将被删除,以便程序以一个空文件开始操作。
全部博文(97)
分类: LINUX
2012-03-30 15:15:27
113. 如果使用任何一种”w”模式打开一个已有的文件,文件内容将被删除,以便程序以一个空文件开始操作。
4.
简单的文件压缩程序:
// 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, "Usage: %s filename\n", argv[0]);
exit(1);
}
// set up input
if ((in = fopen(argv[1], "r")) == NULL)
{
fprintf(stderr, "I couldn't open the file \"%s\"\n",
argv[1]);
exit(2);
}
// set up output
strncpy(name,argv[1], LEN - 5); // copy filename
name[LEN - 5] = '\0';
strcat(name,".red"); // append .red
if ((out = fopen(name, "w")) == NULL)
{ // open file for writing
fprintf(stderr,"Can't create output file.\n");
exit(3);
}
// copy data
while ((ch = getc(in)) != EOF)
if (count++ % 3 == 0)
putc(ch, out); // print every 3rd char
// clean up
if (fclose(in) != 0 || fclose(out) != 0)
fprintf(stderr,"Error in closing files\n");
return 0;
}