C语言网

 找回密码
 加入社区!

QQ登录

只需一步,快速开始

C语言网 网站首页 C语言 C语言程序 查看内容

C语言之经典习题

2009-8-28 20:47| 发布者: admin| 查看: 31930| 评论: 11

摘要: 学了这么多语言,发现有好多习题在每种语言的学习中都会有,这些题不仅常考,实践中也经常用到,希望刚学习语言的各位学弟学妹能够熟练掌握。以后我们可以来这里讨论一些更深入的编程技巧,那才是编程快乐的源泉。 ...

将两个文本文件合并成一个新的文本文件

这倒有个现成的(十年历史以上):

/*
** ATTACH.C
**
** 将第一个文件(虱子)加放在第二个文件(狗)的尾后。
** 若然第二个文件不存在,就自行起个新的。
** wing1978@sohu.com
*/
#define ATTACH_BUFFER_SIZE 32768 // 64KB 以下

/*--------------------------------- Includes --------------------------------*/
#include // exit()
#include
#include // toupper()

/*----------------------------- Global Variables ----------------------------*/
FILE *Flea, *Dog; // 将虱子放在狗身上
unsigned int BlockSize;
unsigned int ReadSize;
int Quiet = 0; // 没人反对便开口说话
char DogMode[3] = {'a', 'b', '\0'}; // 没指示便加长文件
unsigned char p[ATTACH_BUFFER_SIZE];

/*------------------------ Local function prototypes ------------------------*/
static void Exit (int);

/*------------------------------ Main Function ------------------------------*/
int main (int ArgC, char *ArgV[])
{
char Option;

if (ArgC < 3) {
printf( \n\n用法 : %s 虱子 狗儿 [q/Q]\n, *ArgV[0]);
printf( \n我们是要将虱子放在狗儿身上。\n);
printf( q/Q 不动声息地\n);
printf( o/O 不作声还把狗儿也去掉,只剩下虱子。\n);
return 1;
}
if (ArgC > 3) {
Option = (char)toupper( *ArgV[3]);
if ('Q' == Option)
Quiet = 1;
else if ('O' == Option) {
Quiet = 1;
DogMode[0] = 'w';
}
}
if (NULL == (Flea = fopen( ArgV[1], rb)))
Exit( 2);
if (NULL == (Dog = fopen( ArgV[2], DogMode)))
Exit( 3);

BlockSize = ATTACH_BUFFER_SIZE;

if (!Quiet) {
printf( 缓冲区大少是 %u bytes.\n, BlockSize);
printf( ... %s 狗儿跑得还不慢呢 ..., ArgV[2]);
}

while (0 < (ReadSize = fread( p, 1, BlockSize, Flea))) {
fwrite( p, ReadSize, 1, Dog);
}

fclose( Flea);
fclose( Dog );

if (!Quiet ) {
printf( 叮上了。\n);
}
Exit( 0);
return 0; // make ANSI checker happy
} // main ()

/*
** Exit()
*/
static void Exit (int Rc)
{
if (!Quiet) {
switch (Rc) {
case 2:
printf( \n虱子太小 (第一份文件开不成)\n);
break;
case 3:
printf( \n狗儿太快 (第二份文件开不成)\n);
break;
case 4:
printf( \n狗儿没毛 (malloc 说没内存了)\n);
break;
}
}
exit( Rc);
} // Exit()

3

鲜花

握手

雷人

路过

鸡蛋

刚表态过的朋友 (3 人)

发表评论

最新评论

引用 firnsan 2011-10-16 23:28
感谢楼主啦,对我们初学者作用很大
引用 ping 2011-6-14 17:53
谢啦
引用 shine 2011-5-25 23:39
挺实在的!~
引用 梦之狱 2011-5-6 23:17
真的很有帮助
引用 大浪之窗 2011-4-18 10:06
感谢分享啊 楼主辛苦
引用 kifine 2011-4-7 19:35
printf和scanf请问你到底会不会用?
引用 hgk 2011-3-6 14:01
经典啊
引用 thlgood 2011-2-25 19:35
话说第二页的第一个Hello,world就错了
引用 shenlan 2011-1-5 15:14
经典啊
引用 枫花笑雪 2010-12-20 09:23
太实用了!感到!
引用 设计梦想 2009-11-4 17:10
obj - 34 error(s), 4 warning(s) 你可以告诉我这是为什么吗??你不是用的vc6.0吗?还是用的tc

C语言 ( 粤ICP备11042647号-2 )

GMT+8, 2012-2-7 22:55

©2009-2011 cyuyan.com.cn

回顶部