CÖжÁÎļþ
À´×Ô£ºhttp://blogger.org.cn/blog/more.asp?name=binaryluo&id=11408
CÎļþ²Ù×÷Óöµ½µÄ×´¿ö
1.½«Ò»¸öÎļþ¶Áµ½ÁíÒ»¸öÎļþ£¬ÓÓ(ch = getc(fp)) != EOF”À´ÅжÏÎļþÊÇ·ñ½áÊø£¬Èç¹ûÎļþÊÇȫӢÎÄÎı¾µÄ»°¾ø¶ÔûÎÊÌ⣬ÐÂÎļþµÄ´óСºÍÔÎļþ´óСһÑù£»µ«ÊÇÈç¹ûÊÇһЩÓÐÖÐÎÄ×Ö·û»òÕßÊǶþ½øÖÆÎļþ£¬ÔÎļþû¶ÁÍê¾Í½áÊø¡£
2.½«Ò»¸öÎļþ¶Áµ½ÁíÒ»¸öÎļþ£¬ÓÓ!feof(fp)”ÅжÏÎļþÊÇ·ñ½áÊø£¬²»¹ÜÔÎļþÊÇʲôÀàÐ͵ͼ¿ÉÒÔ½«ÔÎļþÈ«²¿¶ÁÍê²Å½áÊø£¬µ«ÊÇÐÂÎļþµÄ´óС±ÈÔÎļþ¶àÁËÒ»¸ö×Ö½Ú¡£
ÎÊÌ⣺ÔÚCÀïÈçºÎ²ÅÄÜÕýÈ·ÅжÏÎļþ½áÊø£¿£¿
̽Ë÷
²âÊÔÒ»£¬ÎÒдÁËÒ»¸öº¯ÊýÀ´ÊÔÓÃEOFÅжÏÎļþ½áÊøµÄÇé¿ö£º
-------in.txtÄÚÈÝÈçÏÂ---------
abcde
-------in.txt½áÊø-------------
-------test1.c----------------
int main(int argc, char* argv[]){
char ch;
FILE* in;
FILE* out;
in = fopen("in.txt", "rb"); /* in.txtȫΪӢÎÄ×Ö·û */
out = fopen("out.txt", "wb");
while ((ch = getc(in)) != EOF){
putc(ch, out);
}
}
ÔËÐкó½á¹ûÊÇ£ºout.txtµÄ´óСºÍin.txtµÄ´óСÍêȫһÑù¡£
È»ºóÐÞ¸Äin.txtÈçÏ£¬ÔÚÔÀ´µÄ»ù´¡ÉϼÓÈëһЩÖÐÎÄ£º
-------in.txtÐ޸ĺóµÄÄÚÈÝÈçÏÂ---------
abcde
ÕâÊÇÒ»¸ö²âÊÔÎļþ
²âÊÔÖÐÎÄ×Ö·û
-------in.txt½áÊø--------------------
ÔËÐкó¼Ç¹ýÒ²ÊÇ´óСÊÇÒ»ÑùµÄ¡£½«Ô´³ÌÐòÖеēin = fopen("in.txt", "rb");out = fopen("out.txt", "w");”¸ÄΪ“in = fopen("in.rar", "rb");out = fopen("out.rar", "wb");”£¬ÆäÖУ¬in.rarÊÇÒ»¸öѹËõ°üÎļþ£¬´óСÓÐ4M¶à£¬ÔËÐгÌÐòºó£¬µÃµ½µÄout.rarÎļþÖ»ÓÐ800¶àk£¬Ë«»÷½âѹҲ³öÏÖ´íÎó£¬ÎÞ·¨½âѹ¡£
½áÂÛ1£ºÔÚCÀ²Ù×÷ÎļþµÄʱºò£¬Èç¹û´ò¿ª·½Ê½ÊÇ“r”»òÕß“w”£¬ÊÇÒÔÎı¾ÐÎʽ´ò¿ª£¬Ò²¾ÍÊǶÁÈçÄÚ´æµÄ×Ö·ûÖµ¶¼ÊÇ0£256Ö®¼ä£¬²»¿ÉÄܳöÏÖ£1£¬Ëù
Ïà¹ØÎĵµ£º
externÊÇC/C++ÓïÑÔÖбíÃ÷º¯ÊýºÍÈ«¾Ö±äÁ¿×÷Ó÷¶Î§£¨¿É¼ûÐÔ£©µÄ¹Ø¼ü×Ö´´Òâ²úÆ·Íø .
Ëü¸æËß±àÒëÆ÷£¬ÆäÉùÃ÷µÄº¯ÊýºÍ±äÁ¿¿ÉÒÔÔÚ±¾Ä£¿é»òÆäËüÄ£¿éÖÐʹÓá£
1¡£¶ÔÓÚextern±äÁ¿À´Ëµ£¬½ö½öÊÇÒ»¸ö±äÁ¿µÄÉùÃ÷£¬Æä²¢²»ÊÇÔÚ¶¨Òå·ÖÅäÄÚ´æ¿Õ¼ä¡£Èç¹û¸Ã±äÁ¿¶¨Òå¶à´Î£¬»áÓÐÁ¬½Ó´íÎó
2¡£Í¨³££¬ÔÚÄ£¿éµÄÍ·ÎļþÖжԱ¾Ä£¿éÌṩ¸øÆäËüÄ£¿éÒýÓõ ......
CÓïÑÔÓÉDennis M. RitchieÔÚ1973ÄêÉè¼ÆºÍʵÏÖ¡£´ÓÄÇÒÔºóʹÓÃÕßÖð½¥Ôö¼Ó¡£µ½1978ÄêRitchieºÍBellʵÑéÊÒµÄÁíһλ³ÌÐòר¼ÒKernighanºÏдÁËÖøÃûµÄ¡¶The C Programming Language¡·£¬½«CÓïÑÔÍÆÏòÈ«ÊÀ½ç£¬Ðí¶à¹ú¼Ò¶¼³öÁËÒë±¾£¬¹úÄÚÓÐһЩCÓïÑÔÊé¾ÍÊÇÕâ±¾ÊéµÄ·Òë»òÕß±àÒë¡£ÓÉÕâ±¾Ê鶨ÒåµÄCÓïÑÔºóÀ´±»ÈËÃdzÆ×÷ K&R C¡£
Ëæ×ÅCÓ ......
1£¬C++ÀXºõ²»ÐèÒªÓõ½ºê£¬ÓÃconst»ðenum¶¨ÒåÃ÷ÏԵij£Á¿¡£ÓÃinline±ÜÃ⺯ÊýµÄ¶îÍ⿪Ïú£¬ÓÃtemplateÈ¥¿Ì»Ò»×庯Êý»òÕßÀàÐÍ£¬ÓÃnamespaceÈ¥±ÜÃâÃû×Ö³åÍ»¡£ÀàÒ²¿ÉÒÔ¡£
2£¬²»ÒªÔÚÄãÐèҪ֮ǰÉêÃ÷Ëü£¬Ê²Ã´Ê±ºòÓÃʲôʱºòÉêÃ÷£¨µ±Äê´ÓC++תCµÄʱºò³ÔÁËÀÏ¿àÁË£©£»
3£¬²»ÒªÓÃmalloc£¨£©£¬new¿ÉÒÔ×öµÄºÜºÃ£¬¶ÔÓÚrealloc£¨£©£¬¿ÉÒÔ ......
CÔËÐÐʱ¿âº¯ÊýºÍAPIº¯ÊýÓÐÊ²Ã´Çø±ðºÍÁªÏµÄØ£¿
CÔËÐÐʱ¿âº¯ÊýÊÇÖ¸CÓïÑÔ±¾Ê¡Ö§³ÖµÄһЩ»ù±¾º¯Êý£¬Í¨³£ÊÇ»ã±àÖ±½ÓʵÏÖµÄ
¡£
APIº¯ÊýÊDzÙ×÷ϵͳÌṩ¸øÓû§·½±ãÉè¼ÆÓ¦ÓóÌÐòµÄº¯Êý£¬ÊµÏÖÒ»Ð©ÌØ¶¨µÄ¹¦ÄÜ£¬APIº¯ÊýÒ²ÊÇCÓïÑԵĺ¯Êý
ʵÏֵġ£
ËûÃÇÖ®¼äÇø±ðÊÇ£ºAPIº¯ÊýÊÇÕë¶Ô²Ù×÷ϵͳµÄ£¬CÓïÑÔÔËÐÐʱº¯ÊýÔòÊ ......
FILE* pFile = fopen("1.txt","w");
fwrite("http://www.886997.com",1,strlen(http://www.886997.com),pFile);
fseek(pFile,0,SEEK_SET); //´ÓÎļþµÄ¿ªÊ¼´¦¸²¸ÇдÈë
char cStr[100];
memset(cStr,0,sizeof(cStr));
fread(cStr,1,100,pFile);
char *pBuf;
fseek(pFile,0,SEEK_END);
int leng = ftell(pFile);
pBuf ......