锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 1銆傚叧浜庤涓嶈瀛︿範C++錛燂紙緇撹錛氳瀛︼紝涓瀹氳瀛︼紒錛?br />濡備粖鍦ㄧ綉涓婂緢澶氫負瑕佷笉瑕佸C++浜夌殑涓嶅彲寮浜わ紝鍥犱負鐜板湪JAVA錛孋#錛屻侼ET閮界倰鐨勫緢鐏紝鐗瑰埆鏄疛AVA錛屽ぇ鏈夌偢騫沖簮灞憋紝鍋滄鍦扮悆杞姩涔嬪娍銆傜敤鏋楅攼鍚屽織鐨勮瘽璇達紝鍏跺疄JAVA鍙槸C++澶栫敟錛岃窇鍒拌垍鑸呰韓涓婃拻浜嗕竴娉″翱鑰屽凡銆傞鍏堬紝鎴戜滑浠嶫AVA 鐨勬潵鍘嗕笂鏉ヨ錛孞AVA鐨勮璁″垵琛鋒槸鐢ㄦ潵緇欏鐢ㄧ數鍣ㄨ璁$▼搴忎嬌鐢ㄧ殑錛屾渶鍒濊璁¤呮兂鐢–++錛屼絾瑙夊緱C++澶鏉傦紝灝卞湪C++鐨勫熀紜涓婂仛浜嗕竴浜涚畝鍖栵紝璁捐鍑轟簡JAVA錛屽畠鐨勮璁℃濇兂鏄法騫沖彴錛屾墍浠ュ繀欏誨厛鍦ㄨ繍琛屽鉤鍙頒笂瀹夎铏氭嫙鏈猴紝鐒跺悗鎶婃簮紼嬪簭緙栬瘧鎴愪腑闂磋璦鍦ㄨ繍琛屻傝繖鏄竴涓紭鐐癸紝浣嗘垜浠浠繪剰浼樼偣閮芥槸寤虹珛鍦ㄧ己鐐逛笂鐨勶紝JAVA鐨勭己鐐瑰氨鏄繍琛岄熷害鎱紝榪欏浜庢煇浜涚郴緇熸潵璇存槸鑷村懡寮辯偣銆傚喌涓旓紝JAVA涓病鏈夋寚閽堬紝瀵逛簬鍒朵綔緋葷粺杞歡鏉ヨ錛岃繖鏇存槸鏃犳硶楗舵仌鐨勩傚啀鏉ョ湅C++銆侰++浜х敓浜庣編鍥借礉灝斿疄楠屽錛屽氨鏄彂鏄庣數璇濋偅涓叕鍙搞傝璁″垵琛鋒槸鐢ㄦ潵鏀硅繘C鐨勫紑鍙戞晥鐜囷紝C鏄潰鍚戣繃紼嬬殑璇█錛屽紑鍙戞晥鐜囧簳錛岃礉灝斿疄楠屽鏈夊ぇ閲忕殑C紼嬪簭鍛橈紝鎵浠ュ彧瑕佸湪寮鍙戞晥鐜囦笂鎻愰珮涓鐐圭偣錛屽氨鍙互鑺傜害鏁扮洰搴炲ぇ鐨勬垚鏈侰鏄粈涔堜笢瑗匡紵鏄敤鏉ヤ唬鏇挎眹緙栫紪鍐欐搷浣滅郴緇熺殑璇█錛岀敤C++浠f浛C錛屽彲浠ュ緱鍑轟袱涓粨璁猴細絎竴錛孋++蹇呴』鍏鋒湁鍚孋鐩稿綋鐨勬墽琛岄熷害錛涚浜岋紝C++蹇呴』姣擟鍏鋒湁杈冮珮鐨勫紑鍙戞晥鐜囥傛墽琛岄熷害鏂歸潰錛孋++鐨勮璁¤呯殑鎬濇兂灝辨槸鍦ㄦ敼榪涘紑鍙戞晥鐜囩殑鍚屾椂灝介噺涓嶅鍔燙++鐨勭郴緇熷紑閿錛屽綋鐒舵湁浜涘湴鏂歸潪澧炲姞寮閿涓嶅彲錛屼篃鎶婂紑閿鎺у埗鍦ㄦ渶灝忕▼搴﹀唴銆傚叿闈炴潈濞佺爺絀舵姤鍛婏紝C++姣擟鐨勬墽琛屽紑閿澶氬嚭涓嶅埌10%銆傚紑鍙戞晥鐜囨柟闈紝C++寮曡繘浜嗛潰鍚戝璞℃満鍒訛紝搴撴満鍒訛紝鏈澶х▼搴︿笂瀹炵幇浜嗕唬鐮侀噸鐢紝榪欐槸杞歡寮鍙戜漢鍛樼殑紱忛煶銆侰++鍦ㄦ敼榪汣鐨勫紑鍙戞晥鐜囩殑鍚屾椂錛屽C鐨勭己闄峰仛浜嗕竴浜涗慨琛ャ侰鐨勪紭鐐瑰湪C++涓兘寰楀埌浜嗗緢濂界殑淇濈暀錛孋鐨勭己鐐瑰湪C++涓兘鏈変簡鏀硅繘錛屾湁浜嗘洿濂界殑瑙e喅鍔炴硶銆傝屼笖錛屼負浜嗙幇鏈夌殑澶ч噺C紼嬪簭緇存姢錛孋++榪樺叏闈㈠吋瀹逛簡C銆傜旱瑙傚綋浠婄▼搴忚璦瀹舵棌錛屾垜瑙夊緱鍙湁C鍙互C++鐩告彁騫惰錛岄棬褰撴埛瀵癸紝鍏跺畠璇█閮芥棤娉曞拰C++鐩告彁騫惰銆傛棤璁轟粠浠涔堣搴︽潵璇達紝C++閮界畻鐨勪笂璇█涓殑鑰佸ぇ銆?br />濡備粖錛岀綉涓婃湁寰堝鍏充簬C++鐨勪簤璁猴紝鍏跺疄浜夎鐨勪漢閮芥槸涓浜涗笉鐭ユ儏鐨勪漢錛岀粷澶у鏁版槸瀛︽牎閲岀殑瀛︾敓錛屾垜涔熸浘緇忚繖鏍楓傚湪瀛︽牎閲岀殑鏃跺欙紝涓嶇煡閬撶┒绔熷簲璇ュ涔犱粈涔堬紝瑕佹槸閬囧埌濂界殑鑰佸笀榪樺彲浠ワ紝閬囧埌鍨冨溇鑰佸笀錛屽瀮鍦懼鏍¢偅灝辨洿緋熺硶銆傚浠婏紝浠涔圡CSE錛孋CNA錛孋IW絳夌瓑璁よ瘉婕ぉ椋烇紝鎶婁漢鎼炵殑鏄忓ご鏄忚剳錛屽叾瀹炶繖閮芥槸璁よ瘉鍏徃鐐掔殑銆傜ぞ浼氫笂闇瑕佺殑鏄湁鐪熸墠瀹炲鐨勪漢錛岃屼笉鏄渶瑕佽瘉涔︺?br />鎴戜粠澶т簩寮濮嬪涔犵紪紼嬶紝涓寮濮嬪涔燰B錛屽悗鏉ュ涔燚ELPHI錛屽啀鍚庢潵瀛︿範C#錛屽啀鍚庢潵瀛︿範C++錛岀粫浜嗕釜澶у湀瀛愶紝鏈鍚庤繕鏄粫鍥炴潵浜嗐傝屼笖閲嶆柊瀛︿範鏁版嵁緇撴瀯錛屾搷浣滅郴緇燂紝瀛︿範杞歡宸ョ▼錛屽涔犲ぇ瀛︽湰縐戠殑鍩烘湰璇劇▼錛岄噸鏂拌澶栧浗鐨勭▼搴忚璁″悕钁楋紝鑰岃繖浜涗互鍓嶅湪澶у鏄笉灞戜竴欏劇殑銆傚姖濡備粖榪樺湪瀛︽牎鐨勫笀寮熷笀濡逛滑錛屽姫鍔涘涔燙++銆?/p>
2銆備負浠涔堣瀛︿範瀛︿範C++ 3銆傛庢牱瀛︿範C++錛?br />棣栧厛錛屾垜浠繀欏繪壙璁わ紝瀛︿範瑕佽絀舵柟娉曪紝鏈夋嵎寰勩傚叾嬈★紝鎴戜滑榪樺緱鎵胯錛屽涔犺涓嬭嫤鍔燂紝瑕佸姟瀹炪備笂灝忓鐨勬椂鍊欙紝涔︿笂鏈変釜鏁呬簨錛屾槸鍏充簬鐜嬬靜涔嬪涔犱功娉曠殑錛氱帇鐚箣闂粬鐖朵翰鐜嬬靜涔嬶紝瀛︿範涔︽硶鐨勭璇鏄粈涔堬紝浠栫埗浜叉妸浠栧甫鍒板悗闄紝鎸囩潃18鍙eぇ姘寸幾璇達紝浣犲鏋滄妸榪欓噷鐨勬按閮藉啓瀹屼簡錛屽氨鐭ラ亾涔︽硶鐨勭璇鍦ㄩ偅閲屼簡銆傝繖涓晠浜嬬浉淇″緢澶氫漢閮借繕璁板緱銆傚墠鍑犲ぉ鐪嬫鑲囨柊錛堣豹鏉板叕鍙歌佹澘錛夌殑銆婇珮鎵嬬璦銆嬶紝浠栬濡傛灉浣犲鏋滄効鎰忓埄鐢?騫存椂闂存潵鎴愪負楂樻墜錛岄偅涔堜綘鍙涓や笁騫村氨浼氭垚涓洪珮鎵嬶紝濡傛灉浣犳兂涓騫存垚涓洪珮鎵嬶紝閭d箞浣?騫翠篃鎴愪笉浜嗛珮鎵嬨傚涔犺鍒囧繉嫻簛錛岃鑴氳笍瀹炲湴銆傛垜鏇劇粡寰堟誕韜侊紝緇撴灉涓鐩村憜鍦ㄨ彍楦熷爢閲岋紝褰撳崐騫村墠鎴戦潤涓嬪績鏉ュ涔燙++錛屾墠鎰熻鏈夌湡姝g殑榪涙銆傜幇鍦ㄥ仛WEB寮鍙戯紝铏界劧鎴戜粠鏉ヤ笉鐪媁EB寮鍙戠殑涔︼紝浣嗘槸鎴戠殑鍚屼簨閬囧埌闂鏃訛紝鎴戠粡甯歌兘涓涓嬭鍑洪棶棰樼殑鎵鍦ㄣ傚洜涓轟綘鐪嬮棶棰樼殑瑙掑害鍙樹簡銆傛墍浠ワ紝瀛︿範C++鐨勭涓涓柟娉曟槸錛氬垏蹇屾誕韜併傚叾瀹炲浠諱綍涓滆タ閮戒竴鏍鳳紝嬈查熷垯涓嶈揪銆備粠鍩烘湰鏁版嵁綾誨瀷鐪嬭搗錛屼粠鍩烘湰嫻佺▼鎺у埗璇彞鍐欒搗銆?br />鍏舵錛屾暀鏉愬緢閲嶈錛岃鐪嬬粡鍏稿悕钁椼?br /> 1錛夈奀++鍏ラ棬緇忓吀銆嬶紝鍘熷悕銆奣he C++ Language Begeining銆?浣滆匢vor Horton 姝や功嫻呮樉鏄撴噦鏋侀傚悎鍏ラ棬錛屼功涓寘鎷渶鍩烘湰鐨勭▼搴忚璁$煡璇嗭紝渚嬪鍩烘湰鏁版嵁綾誨瀷錛屾祦紼嬫帶鍒惰鍙ワ紝鍑芥暟璁捐銆傚嵆浣挎病鏈変換浣曠▼搴忚璁″熀紜鐨勪漢錛岀湅鐫涔熶笉瑙夊緱绱備功涓竴浜涘緢鏈夌壒鑹茬殑浜嬩緥錛岃兘淇冭繘鍜屽姞娣辮鑰呯殑鐞嗚В銆備絾姝や功鐨勪唬鐮侀鏍煎疄鍦ㄦ湁浜涚碂緋曘?/p>
2錛夈奀++緙栫▼鎬濇兂銆?鍘熷悕銆奣hinking in C++銆?浣滆匓ruce Eckell, 姝や功鐨勫悕姘斿氨涓嶅湪榪欓噷璇翠簡.姝や功鏈鏂扮増鏈?絎笁鐗?寮澶撮儴鍒嗗鍔犱簡鍑犵珷璁睠璇█鐨勯儴鍒?鐒跺悗鎶婅鑰呴愭笎寮曞悜C++,鍦ㄨ璁鴻璦鐨勪竴涓壒鎬ф椂,寰寰鎬繪槸鍏堣瑙e湪C涓殑瑙e喅鏂規硶,鐒跺悗璁ㄨ榪欎腑鏂規硶鐨勫眬闄愬拰涓嶈凍涔嬪,鍐嶈璁篊++涓殑瑙e喅鏂規硶.鎹垜鐨勬劅鍙?姝や功浣滆呯殑鍒濊》鏄紩瀵糃紼嬪簭鍛樿蛋鍚慍++,浣嗗悗鏉ュ彂鐜板ぇ澶氭暟鏂扮敓浠g▼搴忓憳,闈炵編鍥界殑紼嬪簭鍛樹笉涓瀹氭噦C,浜庢槸灝卞湪絎笁鐗堜腑鍔犲叆浜嗕粙緇岰鐨勯儴鍒? 姝や功鏈澶х殑鐗圭偣鏄? 浣滆呭杽浜庨忚繃璇█鐜拌薄,鐪嬬湅灞忛鍚庨潰絀剁珶鍙戠敓浜嗕粈涔?渚嬪,鏄劇ず鍑虹敓鎴愮殑姹囩紪璇█).娑堝寲濂借繖鏈功錛孋++姘村鉤涓婁竴涓ぇ鍙伴樁錛?/p>
3錛夈奀++楂樻晥緙栫▼銆嬶紝鍘熷悕銆奅ffect C++銆嬨傛涔﹂噸鐐規帰璁–++鐨勪竴浜涙妧鏈瑙掞紝鎴戝彧鐪嬭繃鍏朵腑寰堝皯鐨勪竴浜涚珷鑺傦紝鍦ㄦ涓嶄綔榪囧璇勮錛?/p>
4錛夈奀++ Primer銆嬶紝浣滆匰tanley B.Lippman錛屾涔﹁繕娌℃湁璇昏繃錛屾帴涓嬫潵璇昏繖鏈功銆傛垜鍦ㄧ綉涓婃壘浜嗕竴鐐瑰姝や功鐗圭偣鐨勬弿榪幫細瀵笴++鍩烘湰姒傚康鍜屾妧鏈叏闈㈣屼笖鏉冨▉鐨勯槓榪幫紝瀵圭幇浠++緙栫▼椋庢牸鐨勫己璋冿紝浣挎湰涔︽垚涓篊++鍒濆鑰呯殑鏈浣蟲寚鍗楋紱瀵逛簬涓珮綰х▼搴忓憳錛屾湰涔︿篃鏄笉鍙垨緙虹殑鍙傝冧功銆傜4鐗堜笉鍐嶅己璋冧綆灞傜紪紼嬫妧鏈紝鑰屾妸涓績杞悜鏍囧噯搴撶殑浣跨敤銆備功涓緢鏃╁氨寮濮嬩粙緇嶆爣鍑嗗簱錛岀ず渚嬩篃宸茬粡閲嶆柊鏀瑰啓錛屽厖鍒嗗埄鐢ㄤ簡鏍囧噯搴撹鏂姐傛垜浠篃瀵硅璦涓婚鍙欒堪鐨勫厛鍚庢搴忚繘琛屼簡閲嶆柊緙栨帓錛屼嬌璁茶В鏇村姞嫻佺晠錛?/p>
5錛夈奀++緙栫▼璇█銆嬶紝鍘熷悕銆奀++ Program Language銆嬶紝浣滆呬箖C++鐨勫彂鏄庤呰瑾変負C++涔嬬埗鐨凚jarne Stroustrup錛屾涔︽垜鍙浜嗕竴閮ㄥ垎錛岃瀹炶瘽錛屾湁浜涢毦銆傛涔︾殑浣滆呭氨鏄疌++鐨勫垱濮嬩漢錛屽彂鏄庤咃紝鐭ヨ瘑闈炲父娓婂崥錛屽叾鎬濇兂娣卞害榪滆繙鍦ㄥ墠闈㈠嚑浣嶄箣涓娿傚鏋滀綘鎯崇煡閬揅++絀剁珶鑳藉仛浠涔堬紝C++閭d簺甯屽鍙ゆ殑鐗規т負浠涔堥偅鏍瘋璁★紝閭d綘灝卞幓鍙傝冭繖鏈功銆傚彟澶栵紝闃呰姝や功鏃訛紝浣犺繕浼氫負浣滆呴偅縐嶆繁閭冪殑鎬濇兂錛屽崥澶х殑鑳告鎰熻鍒頒竴縐嶅彂鑷唴鐨勫揩涔愶紝鑸掔晠銆備功涓繕璁插埌浜嗗緢澶氬ぇ鍨嬬郴緇熻璁$殑鏂規硶鍜屾妧宸с傛諱箣錛屼笉璇繪涔︼紝鏄綔涓虹▼搴忓憳鐨勪竴澶ч仐鎲俱傛垜寤鴻鍏堥槄璇匯奀++緙栫▼鎬濇兂銆嬶紝鍐嶅弬鑰冩涔︺傚洜涓恒奀++緙栫▼鎬濇兂銆嬬殑浣滆呰錛屼粬鍐欒繖鏈功鐨勭洰鐨勫氨鏄負浜嗗ぇ瀹惰兘澶熷弬鑰冦奀++緙栫▼璇█銆嬭繖鏈功錛?/p>
6錛夈奀++楂樿川閲忕紪紼嬨嬶紝浣滆呮灄閿愩傛涔︿笉灞炰簬緇忓吀鍚嶈憲錛屼絾鎴戜篃姣旇緝鎺ㄨ崘榪欐湰涔︺備綔鑰呬笉璞″浗鍐呭叾浠栦綔鑰呴偅鏍瘋總鑵愬姛鍒╋紝鑰屾槸浠庝竴涓▼搴忓憳鐨勮搴︼紝浠嬬粛浠栧湪浠ュ線寮鍙戣繃紼嬩腑閬囧埌鐨勯棶棰樺拰縐瘡鐨勭粡楠岋紝榪欐湰涔﹀緢钖勶紝浣嗗叾涓殑鎬濇兂鏂規硶寰堟湁鐢ㄣ備笖璇彞璇欒皭騫介粯錛岄槄璇昏搗鏉ュ緢杞繪澗錛?/p>
浠諱綍涓鏈功錛岄兘鏈変粬鐨勫彲鍙栦箣澶勶紱浠諱綍涓鏈功錛岄兘鏃犳硶瑙e喅鍦ㄥ涔犱腑閬囧埌鐨勬墍鏈夐棶棰橈紱浠諱綍涓鏈功錛岄兘鏃犳硶鏇夸唬浜虹殑鏅烘収鍜岀粡楠屻備絾鏄ソ鐨勬暀鏉愶紝鍙互璧峰埌濂界殑鎸囧鏁堟灉錛屽彲浠ヤ嬌瀛︿範灝戣蛋寮礬銆備絾鎴戜笉鎬庝箞寤鴻鐪嬫瘮杈冭杽錛?00欏典互涓嬶級鐨勪功錛屽洜涓哄浜嶤++鏉ヨ錛岃繖鏍風殑綃囧箙鏍規湰灝辮涓嶆竻妤氾紝涔熶笉寤鴻鐪嬪浗鍐呬綔鑰呯殑鏁欐潗錛屼綘鍙戠幇澶у鏄粠涓婇潰鎵璇寸殑涔︿腑鎶勪笅鏉ョ殑銆?/p>
4銆侰++鍜孷C鐨勫尯鍒?br />鐩墠鎴戜滑鎵璇寸殑C++錛岄氬父鎰忎箟涓婃寚鏍囧噯C++錛屽氨鏄編鍥紺++鏍囧噯濮斿憳浼氬彂甯冪殑C++銆傚畠瀹氫箟浜嗕竴浜涘熀鏈殑璇█瑙勮寖璇█鐗規э紝瀹氫箟浜嗕竴涓鏋訛紝榪樻湁涓涓爣鍑嗗簱銆傝櫧鐒朵駭鐢熶簬UNIX涓嬶紝浣嗗畠涓嶅睘浜庢煇涓涓鉤鍙幫紝鏌愪竴涓巶鍟嗭紝鏌愪竴涓紪璇戝櫒銆傚畠鏄竴縐嶇粺縐幫紝涓縐嶆蹇點俈C鏄井杞叕鍙稿湪WINDOWS騫沖彴涓嬬殑涓縐嶅紑鍙戝伐鍏鳳紝鏈川涓婂拰VB錛孋#娌℃湁浠涔堝尯鍒紝鍙槸杈冧箣搴曞眰涓浜涖俈C鏀寔鏍囧噯C++錛屼絾涓嶇櫨鍒嗕箣鐧炬敮鎸併備竴鑸潵璇達紝瀛︿範C++鍙互浣跨敤VC鐨勭紪璇戠幆澧冿紝浣嗘槸蹇呴』瑕佷嬌鐢ㄦ爣鍑嗗簱銆傝繕鏈夊叾浠栦竴浜汣++緙栬瘧鍣ㄤ緥濡侰++ BUIDER錛屽氨鏄疊orland鍏徃鐢熶駭鐨刉INDOWS涓嬬殑C++緙栬瘧鍣紝GCC鏄疞INUX涓嬬殑甯哥敤鐨凜++緙栬瘧鍣ㄣ備及璁″湪鑻規灉鏈轟笅涔熸湁鐩稿簲鐨凜++緙栬瘧鍣紝鍥犱負C++澶勭悊鍥懼艦緋葷粺鏄叾鐗歸暱銆?/p>
瑕佸涔燙++錛屽氨涓嶈浠嶸C瀛﹁搗錛屽涔燰C鏃犳硶瀛﹀埌鐪熸鐨凜++緙栫▼鎬濇兂錛岃屼綘鍙槸瀛︿細浜嗕嬌鐢ㄧ被搴撹屽凡銆侰++鐨勭壒鎬ф槸浠涔堬紵C++鏈川鏄粈涔堬紵C++鐨勭簿鍗庢槸浠涔堬紵鎴戣寰楁葷粨鎴愪竴鍙ヨ瘽錛氬埄鐢ㄩ潰鍚戝璞$殑鎬濇兂錛岃В鍐沖ぇ鍨嬬郴緇熺殑寮鍙戦棶棰樸?/p>
5銆傚涔燙++鐨勯噸鐐?br />濡傛灉浣犲涔犺繃C鎴栬呬簡瑙錛岄偅涔堝湪瀛︿範C++鐨勬椂鍊欐洿瀹規槗鍙桟鐨勫獎鍝嶏紝璁頒綇錛孋鏄潰鍚戣繃紼嬬殑璇紝C++鏄潰鍚戝璞$殑璇█銆傚鏋滀綘瀛︿範榪嘋錛岄偅涔堝涔燙++鐨勯噸鐐規槸鎺屾彙C++鐨勬柊鐗規э紝C涓嶤++鐨勫尯鍒紝C++鐨勯潰鍚戝璞$壒鎬э紝灝濊瘯鐢–++鐨勯鏍煎幓緙栧啓紼嬪簭錛岀敤C++鐨勬妧鏈幓瑙e喅闂銆傛垨璁鎬綘璁や負C寰堜笉閿欙紝浣嗗湪C++鍙兘鏈夋洿濂界殑瑙e喅鍔炴硶錛?/p>
濡傛灉浣犲涔犺繃JAVA錛孋#鎴朌ELPHI錛岄偅涔堜綘搴旇瀵歸潰鍚戝璞℃満鍒跺緢鐔熸倝銆備絾鏄紝C++涓殑闈㈠悜瀵硅薄鏈哄埗鍜屼笂榪板嚑縐嶈璦鏈夋墍鍖哄埆錛屼緥濡傚閲嶇戶鎵褲傛渶濂藉皾璇曞湪娌℃湁鐢ㄦ埛鐣岄潰鐨勭幆澧冧笅緙栧啓紼嬪簭錛岃繕鏈夛紝鎸囬拡鏄疌++鐨勭簿鍗庝箣涓錛屾墍浠ュ繀欏繪帉鎻★紱 濡傛灉浣犳病鏈夌紪紼嬪熀紜錛岄偅灝辯洿鎺ヤ粠C++瀛﹁搗錛岃繖鏍峰氨娌℃湁鍏朵粬璇█鐨勫共鎵板拰褰卞搷銆傜璐轟綘錛屼竴寮濮嬪氨鎺ヨЕ浜嗚繖鏍蜂竴縐嶄紵澶х殑璇█錛?/p>
鎴戣寰楋紝C++鐨勯噸鐐瑰彲浠ョ敤涓変釜璇嶆潵鎻忚堪錛氭寚閽堬紝闈㈠悜瀵硅薄錛屾爣鍑嗗簱銆?/p>
鏈鍚庯紝鍦ㄨ繖閲屽悓鎵鏈夊涔燙++鐨勭▼搴忓憳鍏卞媺錛屼笉瑕佹媴蹇冨涔燙++浼氳娣樻卑錛屾垜鎵鍦ㄧ殑鍗曚綅榪樻湁澶ч噺鐨処nformix紼嬪簭鍛橈紝鑰屼笖鏃ュ瓙榪囩殑寰堣垝鏈嶃傛垜灝忔椂鍊欏涔︽硶錛岃佸笀甯稿鎴戣涓鍙ヨ瘽灝辨槸錛氬瓧鍐欑殑濂斤紝鍝曟嬁涓鏍圭瀛愬湪鍢村反閲屽挰鍑犱笅錛岄兘鍐欑殑濂界湅錛岃屼笉鍦ㄤ簬鐢ㄤ粈涔堢瑪銆傜敤C++涔嬬埗Bjarne Stroustrup鐨勮瘽鏉ヨ錛氬彧瑕佷綘鍦ㄤ嬌鐢ㄧ數鑴戯紝浣犲氨鐩存帴鎴栭棿鎺ヤ嬌鐢ㄤ簡C++銆?/p>
璁╂垜浠叡鍚屽涔狅紝鍏卞悓榪涙錛岀浉浜掍氦嫻侊紝鐩鎬簰淇冭繘銆?/p>
1錛塁++鐨勭▼搴忓憳韜環鏅亶杈冮珮錛屽綋鐒訛紝鍓嶆彁鏄綘蹇呴』鏄珮鎵嬨傛垜鎵鍦ㄧ殑鍩庡競錛岄偅浜涘叕鍙告牴鏈氨鎷涗笉鍒板悎鏍肩殑C++紼嬪簭鍛橈紝涓鏂歸潰C++紼嬪簭鍛樿姹傞珮錛屽涔燙++鐨勪漢瓚婃潵瓚婂皯浜嗐傚綋鐒訛紝鎬鐫榪欎釜鐩殑錛屼綘鎴栬姘歌繙鏃犳硶鎴愪負C++楂樻墜錛屼絾鎴戞妸榪欎釜鍘熷洜鏀懼湪鏈鍓嶉潰錛屽彲浠ョ粰澶у涓涓緢鏄庣‘鐨勬縺鍔憋紝褰撲綘鎺ヨЕC++鍚庯紝鍙戠幇浠庡涔犱腑鑾峰緱涔愯叮姣旈珮鐨勫伐璧勬洿鏈夊姩鍔涳紱
2錛塁++鐨勪紭鍔挎槸鐢ㄦ潵寮鍙戝ぇ鍨嬭蔣浠訛紝浠庝腑鍙互瀛﹀埌寰堝浼樼鐨勮蔣浠惰璁℃濇兂銆侰++涓嶆槸杞歡寮鍙戠殑棣栭夊伐鍏鳳紝涓鑸鏉ワ紝澶у浜烘洿鎰挎剰瀛︿範鍜屼嬌鐢╒B錛屼負浠涔堬紝綆鍗曘傜畝鍗曠殑鍙︿竴涓柟闈㈡槸鍔熻兘鐨勫眬闄愩傚井杞叕鍙告仺涓嶇殑鎵鏈変漢閮藉VB錛屽彧鏈変粬涓瀹朵細C++銆傚鏄撲笂鎵嬶紝澶у閮藉枩嬈㈠錛屽枩嬈㈢敤錛屽緢澶氫漢鎷夸竴鏈?00欏電殑涔︼紝鐪嬩釜涓や笁涓槦鏈燂紝灝辮寰楄嚜宸辨槸涓▼搴忓憳浜嗭紝鍙互寮鍙戣蔣浠朵簡錛岃屼笖瑙夊緱鍋氬嚭鏉ョ殑涓滆タ寰堜笉閿欍傚綋杞歡瑙勬ā澶у埌涓瀹氱▼搴︾殑鏃跺欙紝鍏朵粬璇█灝辮秺鏉ヨ秺鏃犳硶椹鵑┉錛岃繖鏃禖++鐨勪紭鍔垮氨浣撶幇鍑烘潵浜嗐備綘璇村仛涓垚緇╃鐞嗙郴緇燂紝浜轟簨鏌ヨ緋葷粺錛岀敤VB錛孌ELPHI錛孋#錛孞AVA閮借錛屼絾鏄緥濡傞摱琛岋紝鐢典俊錛屼繚闄╋紝鎿嶄綔緋葷粺錛屾暟鎹粨搴擄紝鍥懼艦澶勭悊錛岀紪璇戠郴緇燂紝杈冨簳灞傜殑杞歡鏃訛紝鍏朵粬宸ュ叿鍑犱箮鏄棤娉曞畬鎴愮殑銆傚氨璇碈++鐨勬寚閽堬紝JAVA娌℃湁錛屽湪閬囧埌鏁版嵁閲忎氦澶х殑鏁版嵁鎺掑簭錛屾悳绱紝鍔ㄦ佸唴瀛樺垎閰嶆椂錛屽畠灝辨病鏈夊姙娉曚簡銆傛墍浠ヨ錛屽涔燙++錛屼笉浠呬粎鏄鍒扮殑涓縐嶈璦錛岃繕瀛︿範浜嗕紭縐鐨勮蔣浠惰璁℃濇兂銆?br />3錛夊涔燙++鍙互瀛︿範鍒拌綆楁満搴曞眰鐨勭悊璁猴紝鍗充嬌涓嶆槸鐢–++寮鍙戯紝瀵硅綆楁満榪愯鏈哄埗鐨勭悊瑙o紝瀵瑰緩鍒剁ǔ瀹氱殑緋葷粺錛屽榪愮敤鍏朵粬璇█錛屼篃鏄竴縐嶄績榪涖傝繖涓鐐癸紝鎴戞槸鍦ㄥ涔犺繃紼嬩腑浣撲細鍒扮殑錛屾墍浠ワ紝瑕佽鍑轟釜澶у鍙互鎺ュ彈鐨勭悊鐢辨潵杈冮毦錛屽ぇ瀹朵互鍚庡涔犲氨鐭ラ亾浜嗐?/p>
鍏舵錛屾暀鏉愬緢閲嶈錛岃鐪嬬粡鍏稿悕钁楋紝鑰屼笖濡傛灉鑻辮濂斤紝鏈濂界湅鍘熺増鑻辨枃鏁欐潗銆?br />緇忓吀涔嬫墍浠ユ垚涓虹粡鍏革紝鏄洜涓虹粡鍘嗕簡鑰冮獙娌夋穩涓嬫潵鐨勪笢瑗褲傚幓騫?鏈堜喚錛屽綋鎴戞墦綆楄漿鍚慍++鐨勬椂鍊欙紝鏇懼悜鎴戜竴浣嶅悓浜嬪挩璇紝浠栧悜鎴戞帹鑽愪簡銆奀++緙栫▼鎬濇兂銆嬶紝榪樿鍙垜涓瀹氳璇匯傚綋鎴戣瀹屽墠闈笁鍒板洓绔犵殑鏃跺欙紝灝卞彂瑙夎嚜宸辨壘鍒頒簡鎰熻銆傛帴涓嬫潵錛屾垜涓鍙f皵璇誨畬浜嗘暣鏈功錛屽綋鐒跺叾涓緢澶氫笢瑗胯繕鏄棤娉曠湡姝g悊瑙o紝榪欐槸涓鏈緢娣遍們鐨勪功銆傚簾璇濆皯璇達紝鎴戠幇鍦ㄦ妸鎴戣嚜宸辯湅榪囩殑C++鍙傝冧功綾嶅垪鍑烘潵錛?/p>
銆銆鏅氭枃浠舵槸鎸囬┗鐣欏湪紓佺洏鎴栧叾瀹冨閮ㄤ粙璐ㄤ笂鐨勪竴涓湁搴忔暟鎹泦錛屽彲浠ユ槸婧愭枃浠躲佺洰鏍囨枃浠躲佸彲鎵ц紼嬪簭錛?涔熷彲浠ユ槸涓緇勫緟杈撳叆澶勭悊鐨勫師濮嬫暟鎹紝鎴栬呮槸涓緇勮緭鍑虹殑緇撴灉銆傚浜庢簮鏂囦歡銆佺洰鏍囨枃浠躲?鍙墽琛岀▼搴忓彲浠ョО浣滅▼搴忔枃浠訛紝瀵硅緭鍏ヨ緭鍑烘暟鎹彲縐頒綔鏁版嵁鏂囦歡銆?br />
銆銆璁懼鏂囦歡鏄寚涓庝富鏈虹浉鑱旂殑鍚勭澶栭儴璁懼錛屽鏄劇ず鍣ㄣ佹墦鍗版満銆侀敭鐩樼瓑銆傚湪鎿嶄綔緋葷粺涓紝鎶婂閮ㄨ澶囦篃鐪嬩綔鏄竴涓枃浠舵潵榪涜綆$悊錛屾妸瀹冧滑鐨勮緭鍏ャ佽緭鍑虹瓑鍚屼簬瀵圭鐩樻枃浠剁殑璇誨拰鍐欍?閫氬父鎶婃樉紺哄櫒瀹氫箟涓烘爣鍑嗚緭鍑烘枃浠訛紝 涓鑸儏鍐典笅鍦ㄥ睆騫曚笂鏄劇ず鏈夊叧淇℃伅灝辨槸鍚戞爣鍑嗚緭鍑烘枃浠惰緭鍑恒傚鍓嶉潰緇忓父浣跨敤鐨刾rintf,putchar 鍑芥暟灝辨槸榪欑被杈撳嚭銆傞敭鐩橀氬父琚寚瀹氭爣鍑嗙殑杈撳叆鏂囦歡錛?浠庨敭鐩樹笂杈撳叆灝辨剰鍛崇潃浠庢爣鍑嗚緭鍏ユ枃浠朵笂杈撳叆鏁版嵁銆俿canf,getchar鍑芥暟灝卞睘浜庤繖綾昏緭鍏ャ?
銆銆浠庢枃浠剁紪鐮佺殑鏂瑰紡鏉ョ湅錛屾枃浠跺彲鍒嗕負ASCII鐮佹枃浠跺拰浜岃繘鍒剁爜鏂囦歡涓ょ銆?br />
銆銆ASCII鏂囦歡涔熺О涓烘枃鏈枃浠訛紝榪欑鏂囦歡鍦ㄧ鐩樹腑瀛樻斁鏃舵瘡涓瓧絎﹀搴斾竴涓瓧鑺傦紝鐢ㄤ簬瀛樻斁瀵瑰簲鐨凙SCII鐮併備緥濡傦紝鏁?678鐨勫瓨鍌ㄥ艦寮忎負錛?br />ASC鐮侊細 銆00110101 00110110 00110111 00111000
銆銆銆銆銆鈫?銆銆銆銆鈫撱銆銆銆鈫?銆銆銆鈫?br />鍗佽繘鍒剁爜錛?5銆銆銆銆銆6銆銆銆銆7銆銆銆銆8 鍏卞崰鐢?涓瓧鑺傘侫SCII鐮佹枃浠跺彲鍦ㄥ睆騫曚笂鎸夊瓧絎︽樉紺猴紝 渚嬪婧愮▼搴忔枃浠跺氨鏄疉SCII鏂囦歡錛岀敤DOS鍛戒護TYPE鍙樉紺烘枃浠剁殑鍐呭銆?鐢變簬鏄寜瀛楃鏄劇ず錛屽洜姝よ兘璇繪噦鏂囦歡鍐呭銆?br />
銆銆浜岃繘鍒舵枃浠舵槸鎸変簩榪涘埗鐨勭紪鐮佹柟寮忔潵瀛樻斁鏂囦歡鐨勩?渚嬪錛?鏁?678鐨勫瓨鍌ㄥ艦寮忎負錛?00010110 00101110鍙崰浜屼釜瀛楄妭銆備簩榪涘埗鏂囦歡铏界劧涔熷彲鍦ㄥ睆騫曚笂鏄劇ず錛?浣嗗叾鍐呭鏃犳硶璇繪噦銆侰緋葷粺鍦ㄥ鐞嗚繖浜涙枃浠舵椂錛屽茍涓嶅尯鍒嗙被鍨嬶紝閮界湅鎴愭槸瀛楃嫻侊紝鎸夊瓧鑺傝繘琛屽鐞嗐?杈撳叆杈撳嚭瀛楃嫻佺殑寮濮嬪拰緇撴潫鍙敱紼嬪簭鎺у埗鑰屼笉鍙楃墿鐞嗙鍙?濡傚洖杞︾)鐨勬帶鍒躲?鍥犳涔熸妸榪欑鏂囦歡縐頒綔鈥滄祦寮忔枃浠垛濄?br />
銆銆鏈珷璁ㄨ嫻佸紡鏂囦歡鐨勬墦寮銆佸叧闂佽銆佸啓銆?瀹氫綅絳夊悇縐嶆搷浣溿傛枃浠舵寚閽堝湪C璇█涓敤涓涓寚閽堝彉閲忔寚鍚戜竴涓枃浠訛紝 榪欎釜鎸囬拡縐頒負鏂囦歡鎸囬拡銆傞氳繃鏂囦歡鎸囬拡灝卞彲瀵瑰畠鎵鎸囩殑鏂囦歡榪涜鍚勭鎿嶄綔銆?瀹氫箟璇存槑鏂囦歡鎸囬拡鐨勪竴鑸艦寮忎負錛?FILE* 鎸囬拡鍙橀噺鏍囪瘑絎︼紱 鍏朵腑FILE搴斾負澶у啓錛屽畠瀹為檯涓婃槸鐢辯郴緇熷畾涔夌殑涓涓粨鏋勶紝 璇ョ粨鏋勪腑鍚湁鏂囦歡鍚嶃佹枃浠剁姸鎬佸拰鏂囦歡褰撳墠浣嶇疆絳変俊鎭?鍦ㄧ紪鍐欐簮紼嬪簭鏃朵笉蹇呭叧蹇僃ILE緇撴瀯鐨勭粏鑺傘備緥濡傦細FILE *fp錛?琛ㄧずfp鏄寚鍚慒ILE緇撴瀯鐨勬寚閽堝彉閲忥紝閫氳繃fp 鍗沖彲鎵懼瓨鏀炬煇涓枃浠朵俊鎭殑緇撴瀯鍙橀噺錛岀劧鍚庢寜緇撴瀯鍙橀噺鎻愪緵鐨勪俊鎭壘鍒拌鏂囦歡錛?瀹炴柦瀵規枃浠剁殑鎿嶄綔銆備範鎯笂涔熺緇熷湴鎶奻p縐頒負鎸囧悜涓涓枃浠剁殑鎸囬拡銆傛枃浠剁殑鎵撳紑涓庡叧闂枃浠跺湪榪涜璇誨啓鎿嶄綔涔嬪墠瑕佸厛鎵撳紑錛屼嬌鐢ㄥ畬姣曡鍏抽棴銆?鎵璋撴墦寮鏂囦歡錛屽疄闄呬笂鏄緩绔嬫枃浠剁殑鍚勭鏈夊叧淇℃伅錛?騫朵嬌鏂囦歡鎸囬拡鎸囧悜璇ユ枃浠訛紝浠ヤ究榪涜鍏跺畠鎿嶄綔銆傚叧闂枃浠跺垯鏂紑鎸囬拡涓庢枃浠朵箣闂寸殑鑱旂郴錛屼篃灝辯姝㈠啀瀵硅鏂囦歡榪涜鎿嶄綔銆?br />
銆銆鍦–璇█涓紝鏂囦歡鎿嶄綔閮芥槸鐢卞簱鍑芥暟鏉ュ畬鎴愮殑銆?鍦ㄦ湰绔犲唴灝嗕粙緇嶄富瑕佺殑鏂囦歡鎿嶄綔鍑芥暟銆?br />
銆銆鏂囦歡鎵撳紑鍑芥暟fopen
銆銆fopen鍑芥暟鐢ㄦ潵鎵撳紑涓涓枃浠訛紝鍏惰皟鐢ㄧ殑涓鑸艦寮忎負錛?鏂囦歡鎸囬拡鍚?fopen(鏂囦歡鍚嶏紝浣跨敤鏂囦歡鏂瑰紡) 鍏朵腑錛屸滄枃浠舵寚閽堝悕鈥濆繀欏繪槸琚鏄庝負FILE 綾誨瀷鐨勬寚閽堝彉閲忥紝鈥滄枃浠跺悕鈥濇槸琚墦寮鏂囦歡鐨勬枃浠跺悕銆?鈥滀嬌鐢ㄦ枃浠舵柟寮忊濇槸鎸囨枃浠剁殑綾誨瀷鍜屾搷浣滆姹傘傗滄枃浠跺悕鈥濇槸瀛楃涓插父閲忔垨瀛楃涓叉暟緇勩備緥濡傦細
FILE *fp錛?br />fp=("file a","r");
銆銆鍏舵剰涔夋槸鍦ㄥ綋鍓嶇洰褰曚笅鎵撳紑鏂囦歡file a錛?鍙厑璁歌繘琛屸滆鈥濇搷浣滐紝騫朵嬌fp鎸囧悜璇ユ枃浠躲?br />
銆銆鍙堝錛?br />FILE *fphzk
fphzk=("c:\\hzk16',"rb")
銆銆鍏舵剰涔夋槸鎵撳紑C椹卞姩鍣ㄧ鐩樼殑鏍圭洰褰曚笅鐨勬枃浠秇zk16錛?榪欐槸涓涓簩榪涘埗鏂囦歡錛屽彧鍏佽鎸変簩榪涘埗鏂瑰紡榪涜璇繪搷浣溿備袱涓弽鏂滅嚎鈥淺\ 鈥濅腑鐨勭涓涓〃紺鴻漿涔夊瓧絎︼紝絎簩涓〃紺烘牴鐩綍銆備嬌鐢ㄦ枃浠剁殑鏂瑰紡鍏辨湁12縐嶏紝涓嬮潰緇欏嚭浜嗗畠浠殑絎﹀彿鍜屾剰涔夈?
鏂囦歡浣跨敤鏂瑰紡 銆銆銆銆銆銆銆鎰?涔?br />鈥渞t鈥濄銆銆銆銆銆鍙鎵撳紑涓涓枃鏈枃浠訛紝鍙厑璁歌鏁版嵁
鈥渨t鈥濄銆銆銆銆銆鍙啓鎵撳紑鎴栧緩绔嬩竴涓枃鏈枃浠訛紝鍙厑璁稿啓鏁版嵁
鈥渁t鈥濄銆銆銆銆銆榪藉姞鎵撳紑涓涓枃鏈枃浠訛紝騫跺湪鏂囦歡鏈熬鍐欐暟鎹?br />鈥渞b鈥濄銆銆銆銆銆鍙鎵撳紑涓涓簩榪涘埗鏂囦歡錛屽彧鍏佽璇繪暟鎹?br />鈥渨b鈥濄銆銆銆 銆 鍙啓鎵撳紑鎴栧緩绔嬩竴涓簩榪涘埗鏂囦歡錛屽彧鍏佽鍐欐暟鎹?br />鈥渁b鈥?銆銆銆銆 銆榪藉姞鎵撳紑涓涓簩榪涘埗鏂囦歡錛屽茍鍦ㄦ枃浠舵湯灝懼啓鏁版嵁
鈥渞t+鈥濄銆銆銆銆 璇誨啓鎵撳紑涓涓枃鏈枃浠訛紝鍏佽璇誨拰鍐?br />鈥渨t+鈥濄銆銆銆銆 璇誨啓鎵撳紑鎴栧緩绔嬩竴涓枃鏈枃浠訛紝鍏佽璇誨啓
鈥渁t+鈥濄銆銆銆銆 璇誨啓鎵撳紑涓涓枃鏈枃浠訛紝鍏佽璇伙紝鎴栧湪鏂囦歡鏈拷鍔犳暟 鎹?br />鈥渞b+鈥濄銆銆銆銆 璇誨啓鎵撳紑涓涓簩榪涘埗鏂囦歡錛屽厑璁歌鍜屽啓
鈥渨b+鈥濄銆銆銆銆 璇誨啓鎵撳紑鎴栧緩绔嬩竴涓簩榪涘埗鏂囦歡錛屽厑璁歌鍜屽啓
鈥渁b+鈥?銆銆銆銆銆璇誨啓鎵撳紑涓涓簩榪涘埗鏂囦歡錛屽厑璁歌錛屾垨鍦ㄦ枃浠舵湯榪藉姞鏁版嵁
銆銆瀵逛簬鏂囦歡浣跨敤鏂瑰紡鏈変互涓嬪嚑鐐硅鏄庯細
銆銆1. 鏂囦歡浣跨敤鏂瑰紡鐢眗,w,a,t,b錛?鍏釜瀛楃鎷兼垚錛屽悇瀛楃鐨勫惈涔夋槸錛?br />
銆銆r(read): 璇?br />銆銆w(write): 鍐?br />銆銆a(append): 榪藉姞
銆銆t(text): 鏂囨湰鏂囦歡錛屽彲鐪佺暐涓嶅啓
銆銆b(banary): 浜岃繘鍒舵枃浠?br />銆銆+: 璇誨拰鍐?br />
銆銆2. 鍑$敤鈥渞鈥濇墦寮涓涓枃浠舵椂錛岃鏂囦歡蹇呴』宸茬粡瀛樺湪錛?涓斿彧鑳戒粠璇ユ枃浠惰鍑恒?br />
銆銆3. 鐢ㄢ渨鈥濇墦寮鐨勬枃浠跺彧鑳藉悜璇ユ枃浠跺啓鍏ャ?鑻ユ墦寮鐨勬枃浠朵笉瀛樺湪錛屽垯浠ユ寚瀹氱殑鏂囦歡鍚嶅緩绔嬭鏂囦歡錛岃嫢鎵撳紑鐨勬枃浠跺凡緇忓瓨鍦紝鍒欏皢璇ユ枃浠跺垹鍘伙紝閲嶅緩涓涓柊鏂囦歡銆?br />
銆銆4. 鑻ヨ鍚戜竴涓凡瀛樺湪鐨勬枃浠惰拷鍔犳柊鐨勪俊鎭紝鍙兘鐢ㄢ渁 鈥濇柟寮忔墦寮鏂囦歡銆備絾姝ゆ椂璇ユ枃浠跺繀欏繪槸瀛樺湪鐨勶紝鍚﹀垯灝嗕細鍑洪敊銆?br />
銆銆5. 鍦ㄦ墦寮涓涓枃浠舵椂錛屽鏋滃嚭閿欙紝fopen灝嗚繑鍥炰竴涓┖鎸囬拡鍊糔ULL銆傚湪紼嬪簭涓彲浠ョ敤榪欎竴淇℃伅鏉ュ垽鍒槸鍚﹀畬鎴愭墦寮鏂囦歡鐨勫伐浣滐紝騫朵綔鐩稿簲鐨勫鐞嗐傚洜姝ゅ父鐢ㄤ互涓嬬▼搴忔鎵撳紑鏂囦歡錛?br />if((fp=fopen("c:\\hzk16","rb")==NULL)
{
printf("\nerror on open c:\\hzk16 file!");
getch();
exit(1);
}
銆銆榪欐紼嬪簭鐨勬剰涔夋槸錛屽鏋滆繑鍥炵殑鎸囬拡涓虹┖錛岃〃紺轟笉鑳芥墦寮C鐩樻牴鐩綍涓嬬殑hzk16鏂囦歡錛屽垯緇欏嚭鎻愮ず淇℃伅鈥渆rror on open c:\ hzk16file!鈥濓紝涓嬩竴琛実etch()鐨勫姛鑳芥槸浠庨敭鐩樿緭鍏ヤ竴涓瓧絎︼紝浣嗕笉鍦ㄥ睆騫曚笂鏄劇ず銆傚湪榪欓噷錛岃琛岀殑浣滅敤鏄瓑寰咃紝 鍙湁褰撶敤鎴蜂粠閿洏鏁蹭換涓閿椂錛岀▼搴忔墠緇х畫鎵ц錛?鍥犳鐢ㄦ埛鍙埄鐢ㄨ繖涓瓑寰呮椂闂撮槄璇誨嚭閿欐彁紺恒傛暡閿悗鎵цexit(1)閫鍑虹▼搴忋?br />
銆銆6. 鎶婁竴涓枃鏈枃浠惰鍏ュ唴瀛樻椂錛岃灝咥SCII鐮佽漿鎹㈡垚浜岃繘鍒剁爜錛?鑰屾妸鏂囦歡浠ユ枃鏈柟寮忓啓鍏ョ鐩樻椂錛屼篃瑕佹妸浜岃繘鍒剁爜杞崲鎴怉SCII鐮侊紝鍥犳鏂囨湰鏂囦歡鐨勮鍐欒鑺辮垂杈冨鐨勮漿鎹㈡椂闂淬傚浜岃繘鍒舵枃浠剁殑璇誨啓涓嶅瓨鍦ㄨ繖縐嶈漿鎹€?br />
銆銆7. 鏍囧噯杈撳叆鏂囦歡(閿洏)錛屾爣鍑嗚緭鍑烘枃浠?鏄劇ず鍣?)錛屾爣鍑嗗嚭閿欒緭鍑?鍑洪敊淇℃伅)鏄敱緋葷粺鎵撳紑鐨勶紝鍙洿鎺ヤ嬌鐢ㄣ傛枃浠跺叧闂嚱鏁幫絾C锝岋綇锝擄絽鏂囦歡涓鏃︿嬌鐢ㄥ畬姣曪紝搴旂敤鍏抽棴鏂囦歡鍑芥暟鎶婃枃浠跺叧闂紝 浠ラ伩鍏嶆枃浠剁殑鏁版嵁涓㈠け絳夐敊璇?br />
銆銆fclose鍑芥暟
銆銆璋冪敤鐨勪竴鑸艦寮忔槸錛?fclose(鏂囦歡鎸囬拡)錛?渚嬪錛?br />
銆銆fclose(fp); 姝e父瀹屾垚鍏抽棴鏂囦歡鎿嶄綔鏃訛紝fclose鍑芥暟榪斿洖鍊間負0銆傚榪斿洖闈為浂鍊煎垯琛ㄧず鏈夐敊璇彂鐢熴傛枃浠剁殑璇誨啓瀵規枃浠剁殑璇誨拰鍐欐槸鏈甯哥敤鐨勬枃浠舵搷浣溿?
銆銆鍦–璇█涓彁渚涗簡澶氱鏂囦歡璇誨啓鐨勫嚱鏁幫細
銆銆路瀛楃璇誨啓鍑芥暟 錛歠getc鍜宖putc
銆銆路瀛楃涓茶鍐欏嚱鏁幫細fgets鍜宖puts
銆銆路鏁版嵁鍧楄鍐欏嚱鏁幫細freed鍜宖write
銆銆路鏍煎紡鍖栬鍐欏嚱鏁幫細fscanf鍜宖prinf
銆銆涓嬮潰鍒嗗埆浜堜互浠嬬粛銆備嬌鐢ㄤ互涓婂嚱鏁伴兘瑕佹眰鍖呭惈澶存枃浠秙tdio.h銆傚瓧絎﹁鍐欏嚱鏁幫絾锝囷絽锝擟鍜岋絾锝愶綍锝擟瀛楃璇誨啓鍑芥暟鏄互瀛楃(瀛楄妭)涓哄崟浣嶇殑璇誨啓鍑芥暟銆?姣忔鍙粠鏂囦歡璇誨嚭鎴栧悜鏂囦歡鍐欏叆涓涓瓧絎︺?br />
銆銆涓銆佽瀛楃鍑芥暟fgetc
銆銆fgetc鍑芥暟鐨勫姛鑳芥槸浠庢寚瀹氱殑鏂囦歡涓涓涓瓧絎︼紝鍑芥暟璋冪敤鐨勫艦寮忎負錛?瀛楃鍙橀噺=fgetc(鏂囦歡鎸囬拡)錛?渚嬪錛歝h=fgetc(fp);鍏舵剰涔夋槸浠庢墦寮鐨勬枃浠秄p涓鍙栦竴涓瓧絎﹀茍閫佸叆ch涓?br />
銆銆瀵逛簬fgetc鍑芥暟鐨勪嬌鐢ㄦ湁浠ヤ笅鍑犵偣璇存槑錛?br />
銆銆1. 鍦╢getc鍑芥暟璋冪敤涓紝璇誨彇鐨勬枃浠跺繀欏繪槸浠ヨ鎴栬鍐欐柟寮忔墦寮鐨勩?br />
銆銆2. 璇誨彇瀛楃鐨勭粨鏋滀篃鍙互涓嶅悜瀛楃鍙橀噺璧嬪鹼紝渚嬪錛歠getc(fp);浣嗘槸璇誨嚭鐨勫瓧絎︿笉鑳戒繚瀛樸?br />
銆銆3. 鍦ㄦ枃浠跺唴閮ㄦ湁涓涓綅緗寚閽堛傜敤鏉ユ寚鍚戞枃浠剁殑褰撳墠璇誨啓瀛楄妭銆傚湪鏂囦歡鎵撳紑鏃訛紝璇ユ寚閽堟繪槸鎸囧悜鏂囦歡鐨勭涓涓瓧鑺傘備嬌鐢╢getc 鍑芥暟鍚庯紝 璇ヤ綅緗寚閽堝皢鍚戝悗縐誨姩涓涓瓧鑺傘?鍥犳鍙繛緇嬈′嬌鐢╢getc鍑芥暟錛岃鍙栧涓瓧絎︺?搴旀敞鎰忔枃浠舵寚閽堝拰鏂囦歡鍐呴儴鐨勪綅緗寚閽堜笉鏄竴鍥炰簨銆傛枃浠舵寚閽堟槸鎸囧悜鏁翠釜鏂囦歡鐨勶紝欏誨湪紼嬪簭涓畾涔夎鏄庯紝鍙涓嶉噸鏂拌祴鍊鹼紝鏂囦歡鎸囬拡鐨勫兼槸涓嶅彉鐨勩傛枃浠跺唴閮ㄧ殑浣嶇疆鎸囬拡鐢ㄤ互鎸囩ず鏂囦歡鍐呴儴鐨勫綋鍓嶈鍐欎綅緗紝姣忚鍐欎竴嬈★紝璇ユ寚閽堝潎鍚戝悗縐誨姩錛屽畠涓嶉渶鍦ㄧ▼搴忎腑瀹氫箟璇存槑錛岃屾槸鐢辯郴緇熻嚜鍔ㄨ緗殑銆?br />
銆銆[渚?0.1]璇誨叆鏂囦歡e10-1.c錛屽湪灞忓箷涓婅緭鍑恒?br />#include<stdio.h>
main()
{
FILE *fp;
char ch;
if((fp=fopen("e10_1.c","rt"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
ch=fgetc(fp);
while (ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
fclose(fp);
}
銆銆鏈緥紼嬪簭鐨勫姛鑳芥槸浠庢枃浠朵腑閫愪釜璇誨彇瀛楃錛屽湪灞忓箷涓婃樉紺恒?紼嬪簭瀹氫箟浜嗘枃浠舵寚閽坒p,浠ヨ鏂囨湰鏂囦歡鏂瑰紡鎵撳紑鏂囦歡鈥渆10_1.c鈥濓紝 騫朵嬌fp鎸囧悜璇ユ枃浠躲傚鎵撳紑鏂囦歡鍑洪敊錛?緇欏嚭鎻愮ず騫墮鍑虹▼搴忋傜▼搴忕12琛屽厛璇誨嚭涓涓瓧絎︼紝鐒跺悗榪涘叆寰幆錛?鍙璇誨嚭鐨勫瓧絎︿笉鏄枃浠剁粨鏉熸爣蹇?姣忎釜鏂囦歡鏈湁涓緇撴潫鏍囧織EOF)灝辨妸璇ュ瓧絎︽樉紺哄湪灞忓箷涓婏紝鍐嶈鍏ヤ笅涓瀛楃銆傛瘡璇諱竴嬈★紝鏂囦歡鍐呴儴鐨勪綅緗寚閽堝悜鍚庣Щ鍔ㄤ竴涓瓧絎︼紝鏂囦歡緇撴潫鏃訛紝璇ユ寚閽堟寚鍚慐OF銆傛墽琛屾湰紼嬪簭灝嗘樉紺烘暣涓枃浠躲?br />
銆銆浜屻佸啓瀛楃鍑芥暟fputc
銆銆fputc鍑芥暟鐨勫姛鑳芥槸鎶婁竴涓瓧絎﹀啓鍏ユ寚瀹氱殑鏂囦歡涓紝鍑芥暟璋冪敤鐨?褰㈠紡涓猴細 fputc(瀛楃閲忥紝鏂囦歡鎸囬拡)錛?鍏朵腑錛屽緟鍐欏叆鐨勫瓧絎﹂噺鍙互鏄瓧絎﹀父閲忔垨鍙橀噺錛屼緥濡傦細fputc('a',fp);鍏舵剰涔夋槸鎶婂瓧絎鍐欏叆fp鎵鎸囧悜鐨勬枃浠朵腑銆?br />
銆銆瀵逛簬fputc鍑芥暟鐨勪嬌鐢ㄤ篃瑕佽鏄庡嚑鐐癸細
銆銆1. 琚啓鍏ョ殑鏂囦歡鍙互鐢ㄣ佸啓銆佽鍐欙紝榪藉姞鏂瑰紡鎵撳紑錛岀敤鍐欐垨璇誨啓鏂瑰紡鎵撳紑涓涓凡瀛樺湪鐨勬枃浠舵椂灝嗘竻闄ゅ師鏈夌殑鏂囦歡鍐呭錛屽啓鍏ュ瓧絎︿粠鏂囦歡棣栧紑濮嬨傚闇淇濈暀鍘熸湁鏂囦歡鍐呭錛屽笇鏈涘啓鍏ョ殑瀛楃浠ユ枃浠舵湯寮濮嬪瓨鏀撅紝蹇呴』浠ヨ拷鍔犳柟寮忔墦寮鏂囦歡銆傝鍐欏叆鐨勬枃浠惰嫢涓嶅瓨鍦紝鍒欏垱寤鴻鏂囦歡銆?br />
銆銆2. 姣忓啓鍏ヤ竴涓瓧絎︼紝鏂囦歡鍐呴儴浣嶇疆鎸囬拡鍚戝悗縐誨姩涓涓瓧鑺傘?br />
銆銆3. fputc鍑芥暟鏈変竴涓繑鍥炲鹼紝濡傚啓鍏ユ垚鍔熷垯榪斿洖鍐欏叆鐨勫瓧絎︼紝 鍚﹀垯榪斿洖涓涓狤OF銆傚彲鐢ㄦ鏉ュ垽鏂啓鍏ユ槸鍚︽垚鍔熴?br />
銆銆[渚?0.2]浠庨敭鐩樿緭鍏ヤ竴琛屽瓧絎︼紝鍐欏叆涓涓枃浠訛紝 鍐嶆妸璇ユ枃浠跺唴瀹硅鍑烘樉紺哄湪灞忓箷涓娿?br />#include<stdio.h>
main()
{
FILE *fp;
char ch;
if((fp=fopen("string","wt+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
printf("input a string:\n");
ch=getchar();
while (ch!='\n')
{
fputc(ch,fp);
ch=getchar();
}
rewind(fp);
ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
printf("\n");
fclose(fp);
}
銆銆紼嬪簭涓6琛屼互璇誨啓鏂囨湰鏂囦歡鏂瑰紡鎵撳紑鏂囦歡string銆傜▼搴忕13琛屼粠閿洏璇誨叆涓涓瓧絎﹀悗榪涘叆寰幆錛屽綋璇誨叆瀛楃涓嶄負鍥炶濺絎︽椂錛?鍒欐妸璇ュ瓧絎﹀啓鍏ユ枃浠朵箣涓紝鐒跺悗緇х畫浠庨敭鐩樿鍏ヤ笅涓瀛楃銆?姣忚緭鍏ヤ竴涓瓧絎︼紝鏂囦歡鍐呴儴浣嶇疆鎸囬拡鍚戝悗縐誨姩涓涓瓧鑺傘傚啓鍏ュ畬姣曪紝 璇ユ寚閽堝凡鎸囧悜鏂囦歡鏈傚瑕佹妸鏂囦歡浠庡ご璇誨嚭錛岄』鎶婃寚閽堢Щ鍚戞枃浠跺ご錛?紼嬪簭絎?9琛宺ewind鍑芥暟鐢ㄤ簬鎶奻p鎵鎸囨枃浠剁殑鍐呴儴浣嶇疆鎸囬拡縐誨埌鏂囦歡澶淬?絎?0鑷?5琛岀敤浜庤鍑烘枃浠朵腑鐨勪竴琛屽唴瀹廣?br />
銆銆[渚?0.3]鎶婂懡浠よ鍙傛暟涓殑鍓嶄竴涓枃浠跺悕鏍囪瘑鐨勬枃浠訛紝 澶嶅埗鍒板悗涓涓枃浠跺悕鏍囪瘑鐨勬枃浠朵腑錛?濡傚懡浠よ涓彧鏈変竴涓枃浠跺悕鍒欐妸璇ユ枃浠跺啓鍒版爣鍑嗚緭鍑烘枃浠?鏄劇ず鍣?涓?br />#include<stdio.h>
main(int argc,char *argv[])
{
FILE *fp1,*fp2;
char ch;
if(argc==1)
{
printf("have not enter file name strike any key exit");
getch();
exit(0);
}
if((fp1=fopen(argv[1],"rt"))==NULL)
{
printf("Cannot open %s\n",argv[1]);
getch();
exit(1);
}
if(argc==2) fp2=stdout;
else if((fp2=fopen(argv[2],"wt+"))==NULL)
{
printf("Cannot open %s\n",argv[1]);
getch();
exit(1);
}
while((ch=fgetc(fp1))!=EOF)
fputc(ch,fp2);
fclose(fp1);
fclose(fp2);
}
銆銆鏈▼搴忎負甯﹀弬鐨刴ain鍑芥暟銆傜▼搴忎腑瀹氫箟浜嗕袱涓枃浠舵寚閽?fp1 鍜宖p2錛屽垎鍒寚鍚戝懡浠よ鍙傛暟涓粰鍑虹殑鏂囦歡銆傚鍛戒護琛屽弬鏁頒腑娌℃湁緇欏嚭鏂囦歡鍚嶏紝鍒欑粰鍑烘彁紺轟俊鎭傜▼搴忕18琛岃〃紺哄鏋滃彧緇欏嚭涓涓枃浠跺悕錛屽垯浣縡p2鎸囧悜鏍囧噯杈撳嚭鏂囦歡(鍗蟲樉紺哄櫒)銆傜▼搴忕25琛岃嚦28琛岀敤寰幆璇彞閫愪釜璇誨嚭鏂囦歡1涓殑瀛楃鍐嶉佸埌鏂囦歡2涓傚啀嬈¤繍琛屾椂錛岀粰鍑轟簡涓涓枃浠跺悕(鐢變緥10.2鎵寤虹珛鐨勬枃浠?錛?鏁呰緭鍑虹粰鏍囧噯杈撳嚭鏂囦歡stdout錛屽嵆鍦ㄦ樉紺哄櫒涓婃樉紺烘枃浠跺唴瀹廣傜涓夋榪愯錛岀粰鍑轟簡浜屼釜鏂囦歡鍚嶏紝鍥犳鎶妔tring涓殑鍐呭璇誨嚭錛屽啓鍏ュ埌OK涔嬩腑銆傚彲鐢―OS鍛戒護type鏄劇ずOK鐨勫唴瀹癸細
銆銆瀛楃涓茶鍐欏嚱鏁癴gets鍜宖puts
銆銆涓銆佽瀛楃涓插嚱鏁癴gets鍑芥暟鐨勫姛鑳芥槸浠庢寚瀹氱殑鏂囦歡涓涓涓瓧絎︿覆鍒板瓧絎︽暟緇勪腑錛屽嚱鏁拌皟鐢ㄧ殑褰㈠紡涓猴細 fgets(瀛楃鏁扮粍鍚嶏紝n錛屾枃浠舵寚閽?錛?鍏朵腑鐨刵鏄竴涓鏁存暟銆傝〃紺轟粠鏂囦歡涓鍑虹殑瀛楃涓蹭笉瓚呰繃 n-1涓瓧絎︺傚湪璇誨叆鐨勬渶鍚庝竴涓瓧絎﹀悗鍔犱笂涓茬粨鏉熸爣蹇?\0'銆備緥濡傦細fgets(str,n,fp);鐨勬剰涔夋槸浠巉p鎵鎸囩殑鏂囦歡涓鍑簄-1涓瓧絎﹂佸叆瀛楃鏁扮粍str涓?br />
銆銆[渚?0.4]浠巈10_1.c鏂囦歡涓鍏ヤ竴涓惈10涓瓧絎︾殑瀛楃涓層?br />#include<stdio.h>
main()
{
FILE *fp;
char str[11];
if((fp=fopen("e10_1.c","rt"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
fgets(str,11,fp);
printf("%s",str);
fclose(fp);
}
銆銆鏈緥瀹氫箟浜嗕竴涓瓧絎︽暟緇剆tr鍏?1涓瓧鑺傦紝鍦ㄤ互璇繪枃鏈枃浠舵柟寮忔墦寮鏂囦歡e101.c鍚庯紝浠庝腑璇誨嚭10涓瓧絎﹂佸叆str鏁扮粍錛屽湪鏁扮粍鏈鍚庝竴涓崟鍏冨唴灝嗗姞涓?\0'錛岀劧鍚庡湪灞忓箷涓婃樉紺鴻緭鍑簊tr鏁扮粍銆傝緭鍑虹殑鍗佷釜瀛楃姝f槸渚?0.1紼嬪簭鐨勫墠鍗佷釜瀛楃銆?br />
銆銆瀵筬gets鍑芥暟鏈変袱鐐硅鏄庯細
銆銆1. 鍦ㄨ鍑簄-1涓瓧絎︿箣鍓嶏紝濡傞亣鍒頒簡鎹㈣絎︽垨EOF錛屽垯璇誨嚭緇撴潫銆?br />
銆銆2. fgets鍑芥暟涔熸湁榪斿洖鍊鹼紝鍏惰繑鍥炲兼槸瀛楃鏁扮粍鐨勯鍦板潃銆?br />
銆銆浜屻佸啓瀛楃涓插嚱鏁癴puts
銆銆fputs鍑芥暟鐨勫姛鑳芥槸鍚戞寚瀹氱殑鏂囦歡鍐欏叆涓涓瓧絎︿覆錛屽叾璋冪敤褰㈠紡涓猴細 fputs(瀛楃涓詫紝鏂囦歡鎸囬拡) 鍏朵腑瀛楃涓插彲浠ユ槸瀛楃涓插父閲忥紝涔熷彲浠ユ槸瀛楃鏁扮粍鍚嶏紝 鎴栨寚閽?鍙橀噺錛屼緥濡傦細
fputs(鈥渁bcd鈥滐紝fp)錛?br />
銆銆鍏舵剰涔夋槸鎶婂瓧絎︿覆鈥渁bcd鈥濆啓鍏p鎵鎸囩殑鏂囦歡涔嬩腑銆俒渚?0.5]鍦ㄤ緥10.2涓緩绔嬬殑鏂囦歡string涓拷鍔犱竴涓瓧絎︿覆銆?br />#include<stdio.h>
main()
{
FILE *fp;
char ch,st[20];
if((fp=fopen("string","at+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
printf("input a string:\n");
scanf("%s",st);
fputs(st,fp);
rewind(fp);
ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
printf("\n");
fclose(fp);
}
銆銆鏈緥瑕佹眰鍦╯tring鏂囦歡鏈姞鍐欏瓧絎︿覆錛屽洜姝わ紝鍦ㄧ▼搴忕6琛屼互榪藉姞璇誨啓鏂囨湰鏂囦歡鐨勬柟寮忔墦寮鏂囦歡string 銆?鐒跺悗杈撳叆瀛楃涓詫紝 騫剁敤fputs鍑芥暟鎶婅涓插啓鍏ユ枃浠秙tring銆傚湪紼嬪簭15琛岀敤rewind鍑芥暟鎶婃枃浠跺唴閮ㄤ綅緗寚閽堢Щ鍒版枃浠墮銆?鍐嶈繘鍏ュ驚鐜愪釜鏄劇ず褰撳墠鏂囦歡涓殑鍏ㄩ儴鍐呭銆?br />
銆銆鏁版嵁鍧楄鍐欏嚱鏁癴read鍜宖write
銆銆C璇█榪樻彁渚涗簡鐢ㄤ簬鏁村潡鏁版嵁鐨勮鍐欏嚱鏁般?鍙敤鏉ヨ鍐欎竴緇勬暟鎹紝濡備竴涓暟緇勫厓绱狅紝涓涓粨鏋勫彉閲忕殑鍊肩瓑銆傝鏁版嵁鍧楀嚱鏁拌皟鐢ㄧ殑涓鑸艦寮忎負錛?fread(buffer,size,count,fp); 鍐欐暟鎹潡鍑芥暟璋冪敤鐨勪竴鑸艦寮忎負錛?fwrite(buffer,size,count,fp); 鍏朵腑buffer鏄竴涓寚閽堬紝鍦╢read鍑芥暟涓紝瀹冭〃紺哄瓨鏀捐緭鍏ユ暟鎹殑棣栧湴鍧銆傚湪fwrite鍑芥暟涓紝瀹冭〃紺哄瓨鏀捐緭鍑烘暟鎹殑棣栧湴鍧銆?size 琛ㄧず鏁版嵁鍧楃殑瀛楄妭鏁般俢ount 琛ㄧず瑕佽鍐欑殑鏁版嵁鍧楀潡鏁般俧p 琛ㄧず鏂囦歡鎸囬拡銆?br />
銆銆渚嬪錛?br />
fread(fa,4,5,fp); 鍏舵剰涔夋槸浠巉p鎵鎸囩殑鏂囦歡涓紝姣忔璇?涓瓧鑺?涓涓疄鏁?閫佸叆瀹炴暟緇刦a涓紝榪炵畫璇?嬈★紝鍗寵5涓疄鏁板埌fa涓?br />
銆銆[渚?0.6]浠庨敭鐩樿緭鍏ヤ袱涓鐢熸暟鎹紝鍐欏叆涓涓枃浠朵腑錛?鍐嶈鍑鴻繖涓や釜瀛︾敓鐨勬暟鎹樉紺哄湪灞忓箷涓娿?br />#include<stdio.h>
struct stu
{
char name[10];
int num;
int age;
char addr[15];
}boya[2],boyb[2],*pp,*qq;
main()
{
FILE *fp;
char ch;
int i;
pp=boya;
qq=boyb;
if((fp=fopen("stu_list","wb+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
printf("\ninput data\n");
for(i=0;i<2;i++,pp++)
scanf("%s%d%d%s",pp->name,&pp->num,&pp->age,pp->addr);
pp=boya;
fwrite(pp,sizeof(struct stu),2,fp);
rewind(fp);
fread(qq,sizeof(struct stu),2,fp);
printf("\n\nname\tnumber age addr\n");
for(i=0;i<2;i++,qq++)
printf("%s\t%5d%7d%s\n",qq->name,qq->num,qq->age,qq->addr);
fclose(fp);
}
銆銆鏈緥紼嬪簭瀹氫箟浜嗕竴涓粨鏋剆tu,璇存槑浜嗕袱涓粨鏋勬暟緇刡oya鍜?boyb浠ュ強涓や釜緇撴瀯鎸囬拡鍙橀噺pp鍜宷q銆俻p鎸囧悜boya,qq鎸囧悜boyb銆傜▼搴忕16琛屼互璇誨啓鏂瑰紡鎵撳紑浜岃繘鍒舵枃浠垛渟tu_list鈥濓紝杈撳叆浜屼釜瀛︾敓鏁版嵁涔嬪悗錛屽啓鍏ヨ鏂囦歡涓紝 鐒跺悗鎶婃枃浠跺唴閮ㄤ綅緗寚閽堢Щ鍒版枃浠墮錛岃鍑轟袱鍧楀鐢熸暟鎹悗錛屽湪灞忓箷涓婃樉紺恒?br />
銆銆鏍煎紡鍖栬鍐欏嚱鏁癴scanf鍜宖printf
銆銆fscanf鍑芥暟錛宖printf鍑芥暟涓庡墠闈嬌鐢ㄧ殑scanf鍜宲rintf 鍑芥暟鐨勫姛鑳界浉浼鹼紝閮芥槸鏍煎紡鍖栬鍐欏嚱鏁般?涓よ呯殑鍖哄埆鍦ㄤ簬 fscanf 鍑芥暟鍜宖printf鍑芥暟鐨勮鍐欏璞′笉鏄敭鐩樺拰鏄劇ず鍣紝鑰屾槸紓佺洏鏂囦歡銆傝繖涓や釜鍑芥暟鐨勮皟鐢ㄦ牸寮忎負錛?fscanf(鏂囦歡鎸囬拡錛屾牸寮忓瓧絎︿覆錛岃緭鍏ヨ〃鍒?錛?fprintf(鏂囦歡鎸囬拡錛屾牸寮忓瓧絎︿覆錛岃緭鍑鴻〃鍒?錛?渚嬪錛?br />
銆銆fscanf(fp,"%d%s",&i,s);
銆銆fprintf(fp,"%d%c",j,ch);
銆銆鐢╢scanf鍜宖printf鍑芥暟涔熷彲浠ュ畬鎴愪緥10.6鐨勯棶棰樸備慨鏀瑰悗鐨勭▼搴忓渚?0.7鎵紺恒?br />
銆銆[渚?0.7]#include<stdio.h>
struct stu
{
char name[10];
int num;
int age;
char addr[15];
}boya[2],boyb[2],*pp,*qq;
main()
{
FILE *fp;
char ch;
int i;
pp=boya;
qq=boyb;
if((fp=fopen("stu_list","wb+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
printf("\ninput data\n");
for(i=0;i<2;i++,pp++)
scanf("%s%d%d%s",pp->name,&pp->num,&pp->age,pp->addr);
pp=boya;
for(i=0;i<2;i++,pp++)
fprintf(fp,"%s %d %d %s\n",pp->name,pp->num,pp->age,pp->
addr);
rewind(fp);
for(i=0;i<2;i++,qq++)
fscanf(fp,"%s %d %d %s\n",qq->name,&qq->num,&qq->age,qq->addr);
printf("\n\nname\tnumber age addr\n");
qq=boyb;
for(i=0;i<2;i++,qq++)
printf("%s\t%5d %7d %s\n",qq->name,qq->num, qq->age,
qq->addr);
fclose(fp);
}
銆銆涓庝緥10.6鐩告瘮錛屾湰紼嬪簭涓璮scanf鍜宖printf鍑芥暟姣忔鍙兘璇誨啓涓涓粨鏋勬暟緇勫厓绱狅紝鍥犳閲囩敤浜嗗驚鐜鍙ユ潵璇誨啓鍏ㄩ儴鏁扮粍鍏冪礌銆?榪樿娉ㄦ剰鎸囬拡鍙橀噺pp,qq鐢變簬寰幆鏀瑰彉浜嗗畠浠殑鍊鹼紝鍥犳鍦ㄧ▼搴忕殑25鍜?2琛屽垎鍒瀹冧滑閲嶆柊璧嬩簣浜嗘暟緇勭殑棣栧湴鍧銆?br />
銆銆鏂囦歡鐨勯殢鏈鴻鍐?br />
銆銆鍓嶉潰浠嬬粛鐨勫鏂囦歡鐨勮鍐欐柟寮忛兘鏄『搴忚鍐欙紝 鍗寵鍐欐枃浠跺彧鑳戒粠澶村紑濮嬶紝欏哄簭璇誨啓鍚勪釜鏁版嵁銆?浣嗗湪瀹為檯闂涓父瑕佹眰鍙鍐欐枃浠朵腑鏌愪竴鎸囧畾鐨勯儴鍒嗐?涓轟簡瑙e喅榪欎釜闂鍙Щ鍔ㄦ枃浠跺唴閮ㄧ殑浣嶇疆鎸囬拡鍒伴渶瑕佽鍐欑殑浣嶇疆錛屽啀榪涜璇誨啓錛岃繖縐嶈鍐欑О涓洪殢鏈鴻鍐欍?瀹炵幇闅忔満璇誨啓鐨勫叧閿槸瑕佹寜瑕佹眰縐誨姩浣嶇疆鎸囬拡錛岃繖縐頒負鏂囦歡鐨勫畾浣嶃傛枃浠跺畾浣嶇Щ鍔ㄦ枃浠跺唴閮ㄤ綅緗寚閽堢殑鍑芥暟涓昏鏈変袱涓紝 鍗?rewind 鍑芥暟鍜宖seek鍑芥暟銆?br />
銆銆rewind鍑芥暟鍓嶉潰宸插嬈′嬌鐢ㄨ繃錛屽叾璋冪敤褰㈠紡涓猴細 rewind(鏂囦歡鎸囬拡)錛?瀹冪殑鍔熻兘鏄妸鏂囦歡鍐呴儴鐨勪綅緗寚閽堢Щ鍒版枃浠墮銆?涓嬮潰涓昏浠嬬粛
fseek鍑芥暟銆?br />
銆銆fseek鍑芥暟鐢ㄦ潵縐誨姩鏂囦歡鍐呴儴浣嶇疆鎸囬拡錛屽叾璋冪敤褰㈠紡涓猴細 fseek(鏂囦歡鎸囬拡錛屼綅縐婚噺錛岃搗濮嬬偣)錛?鍏朵腑錛氣滄枃浠舵寚閽堚濇寚鍚戣縐誨姩鐨勬枃浠躲?鈥滀綅縐婚噺鈥濊〃紺虹Щ鍔ㄧ殑瀛楄妭鏁幫紝瑕佹眰浣嶇Щ閲忔槸long鍨嬫暟鎹紝浠ヤ究鍦ㄦ枃浠墮暱搴﹀ぇ浜?4KB 鏃朵笉浼氬嚭閿欍傚綋鐢ㄥ父閲忚〃紺轟綅縐婚噺鏃訛紝瑕佹眰鍔犲悗緙鈥淟鈥濄傗滆搗濮嬬偣鈥濊〃紺轟粠浣曞寮濮嬭綆椾綅縐婚噺錛岃瀹氱殑璧峰鐐規湁涓夌錛氭枃浠墮錛屽綋鍓嶄綅緗拰鏂囦歡灝俱?br />
銆銆鍏惰〃紺烘柟娉曞琛?0.2銆?
璧峰鐐?銆銆銆琛ㄧず絎﹀彿 銆銆銆鏁板瓧琛ㄧず
鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹
鏂囦歡棣?銆銆銆SEEK鈥擲ET銆銆銆銆0
褰撳墠浣嶇疆 銆銆SEEK鈥擟UR銆銆銆銆1
鏂囦歡鏈熬 銆銆SEEK鈥擡ND 銆銆銆 2
銆銆渚嬪錛?br />
銆銆fseek(fp,100L,0);鍏舵剰涔夋槸鎶婁綅緗寚閽堢Щ鍒扮鏂囦歡棣?00涓瓧鑺傚銆傝繕瑕佽鏄庣殑鏄痜seek鍑芥暟涓鑸敤浜庝簩榪涘埗鏂囦歡銆傚湪鏂囨湰鏂囦歡涓敱浜庤榪涜杞崲錛屾晠寰寰璁$畻鐨勪綅緗細鍑虹幇閿欒銆傛枃浠剁殑闅忔満璇誨啓鍦ㄧЩ鍔ㄤ綅緗寚閽堜箣鍚庯紝 鍗沖彲鐢ㄥ墠闈粙緇嶇殑浠諱竴縐嶈鍐欏嚱鏁拌繘琛岃鍐欍傜敱浜庝竴鑸槸璇誨啓涓涓暟鎹嵁鍧楋紝鍥犳甯哥敤fread鍜宖write鍑芥暟銆備笅闈㈢敤渚嬮鏉ヨ鏄庢枃浠剁殑闅忔満璇誨啓銆?br />
銆銆[渚?0.8]鍦ㄥ鐢熸枃浠秙tu list涓鍑虹浜屼釜瀛︾敓鐨勬暟鎹?br />#include<stdio.h>
struct stu
{
銆char name[10];
銆int num;
銆int age;
銆char addr[15];
}boy,*qq;
main()
{
銆FILE *fp;
銆char ch;
銆int i=1;
銆qq=&boy;
銆if((fp=fopen("stu_list","rb"))==NULL)
銆{
銆銆printf("Cannot open file strike any key exit!");
銆銆getch();
銆銆exit(1);
銆}
銆rewind(fp);
銆fseek(fp,i*sizeof(struct stu),0);
銆fread(qq,sizeof(struct stu),1,fp);
銆printf("\n\nname\tnumber age addr\n");
銆printf("%s\t%5d %7d %s\n",qq->name,qq->num,qq->age,
銆qq->addr);
}
銆銆鏂囦歡stu_list宸茬敱渚?0.6鐨勭▼搴忓緩绔嬶紝鏈▼搴忕敤闅忔満璇誨嚭鐨勬柟娉曡鍑虹浜屼釜瀛︾敓鐨勬暟鎹傜▼搴忎腑瀹氫箟boy涓簊tu綾誨瀷鍙橀噺錛宷q涓烘寚鍚慴oy鐨勬寚閽堛備互璇諱簩榪涘埗鏂囦歡鏂瑰紡鎵撳紑鏂囦歡錛岀▼搴忕22琛岀Щ鍔ㄦ枃浠朵綅緗寚閽堛傚叾涓殑i鍊間負1錛岃〃紺轟粠鏂囦歡澶村紑濮嬶紝縐誨姩涓涓猻tu綾誨瀷鐨勯暱搴︼紝 鐒跺悗鍐嶈鍑虹殑鏁版嵁鍗充負絎簩涓鐢熺殑鏁版嵁銆?br />
銆銆鏂囦歡媯嫻嬪嚱鏁?br />
銆銆C璇█涓父鐢ㄧ殑鏂囦歡媯嫻嬪嚱鏁版湁浠ヤ笅鍑犱釜銆?br />
銆銆涓銆佹枃浠剁粨鏉熸嫻嬪嚱鏁癴eof鍑芥暟璋冪敤鏍煎紡錛?feof(鏂囦歡鎸囬拡)錛?
銆銆鍔熻兘錛氬垽鏂枃浠舵槸鍚﹀浜庢枃浠剁粨鏉熶綅緗紝濡傛枃浠剁粨鏉燂紝鍒欒繑鍥炲間負1錛屽惁鍒欎負0銆?br />
銆銆浜屻佽鍐欐枃浠跺嚭閿欐嫻嬪嚱鏁癴error鍑芥暟璋冪敤鏍煎紡錛?ferror(鏂囦歡鎸囬拡)錛?
銆銆鍔熻兘錛氭鏌ユ枃浠跺湪鐢ㄥ悇縐嶈緭鍏ヨ緭鍑哄嚱鏁拌繘琛岃鍐欐椂鏄惁鍑洪敊銆?濡俧error榪斿洖鍊間負0琛ㄧず鏈嚭閿欙紝鍚﹀垯琛ㄧず鏈夐敊銆?br />
銆銆涓夈佹枃浠跺嚭閿欐爣蹇楀拰鏂囦歡緇撴潫鏍囧織緗?鍑芥暟clearerr鍑芥暟璋冪敤鏍煎紡錛?clearerr(鏂囦歡鎸囬拡);
銆銆鍔熻兘錛氭湰鍑芥暟鐢ㄤ簬娓呴櫎鍑洪敊鏍囧織鍜屾枃浠剁粨鏉熸爣蹇楋紝浣垮畠浠負0鍊箋?br />
銆銆C搴撴枃浠?br />
銆銆C緋葷粺鎻愪緵浜嗕赴瀵岀殑緋葷粺鏂囦歡錛岀О涓哄簱鏂囦歡錛孋鐨勫簱鏂囦歡鍒嗕負涓ょ被錛屼竴綾繪槸鎵╁睍鍚嶄負".h"鐨勬枃浠訛紝縐頒負澶存枃浠訛紝 鍦ㄥ墠闈㈢殑鍖呭惈鍛戒護涓垜浠凡澶氭浣跨敤榪囥傚湪".h"鏂囦歡涓寘鍚簡甯擱噺瀹氫箟銆?綾誨瀷瀹氫箟銆佸畯瀹氫箟銆佸嚱鏁板師鍨嬩互鍙婂悇縐嶇紪璇戦夋嫨璁劇疆絳変俊鎭傚彟涓綾繪槸鍑芥暟搴擄紝鍖呮嫭浜嗗悇縐嶅嚱鏁扮殑鐩爣浠g爜錛屼緵鐢ㄦ埛鍦ㄧ▼搴忎腑璋冪敤銆?閫氬父鍦ㄧ▼搴忎腑璋冪敤涓涓簱鍑芥暟鏃訛紝瑕佸湪璋冪敤涔嬪墠鍖呭惈璇ュ嚱鏁板師鍨嬫墍鍦ㄧ殑".h" 鏂囦歡銆?br />
銆銆鍦ㄩ檮褰曚腑緇欏嚭浜嗗叏閮ㄥ簱鍑芥暟銆?br />
ALLOC.H 銆銆銆璇存槑鍐呭瓨綆$悊鍑芥暟(鍒嗛厤銆侀噴鏀劇瓑)銆?br />ASSERT.H 銆 銆瀹氫箟 assert璋冭瘯瀹忋?br />BIOS.H 銆銆 銆璇存槑璋冪敤IBM鈥擯C ROM BIOS瀛愮▼搴忕殑鍚勪釜鍑芥暟銆?br />CONIO.H 銆銆銆璇存槑璋冪敤DOS鎺у埗鍙癐/O瀛愮▼搴忕殑鍚勪釜鍑芥暟銆?br />CTYPE.H 銆銆銆鍖呭惈鏈夊叧瀛楃鍒嗙被鍙婅漿鎹㈢殑鍚嶇被淇℃伅(濡?isalpha鍜宼oascii絳?銆?br />DIR.H 銆銆銆銆鍖呭惈鏈夊叧鐩綍鍜岃礬寰勭殑緇撴瀯銆佸畯瀹氫箟鍜屽嚱鏁般?br />DOS.H 銆銆銆銆瀹氫箟鍜岃鏄嶮SDOS鍜?086璋冪敤鐨勪竴浜涘父閲忓拰鍑芥暟銆?br />ERRON.H 銆銆銆瀹氫箟閿欒浠g爜鐨勫姪璁扮銆?br />FCNTL.H 銆銆銆瀹氫箟鍦ㄤ笌open搴撳瓙紼嬪簭榪炴帴鏃剁殑絎﹀彿甯擱噺銆?br />FLOAT.H 銆銆銆鍖呭惈鏈夊叧嫻偣榪愮畻鐨勪竴浜涘弬鏁板拰鍑芥暟銆?br />GRAPHICS.H 銆 璇存槑鏈夊叧鍥懼艦鍔熻兘鐨勫悇涓嚱鏁幫紝鍥懼艦閿欒浠g爜鐨勫父閲忓畾涔夛紝姝e涓嶅悓椹卞姩紼嬪簭鐨勫悇縐嶉鑹插鹼紝鍙婂嚱鏁扮敤鍒扮殑涓浜涚壒孌婄粨鏋勩?br />IO.H 銆銆銆銆 鍖呭惈浣庣駭I/O瀛愮▼搴忕殑緇撴瀯鍜岃鏄庛?br />LIMIT.H 銆銆銆鍖呭惈鍚勭幆澧冨弬鏁般佺紪璇戞椂闂撮檺鍒躲佹暟鐨勮寖鍥寸瓑淇℃伅銆?br />MATH.H 銆銆銆 璇存槑鏁板榪愮畻鍑芥暟錛岃繕瀹氫簡 HUGE VAL 瀹忥紝 璇存槑浜唌atherr鍜宮atherr瀛愮▼搴忕敤鍒扮殑鐗規畩緇撴瀯銆?br />MEM.H 銆銆銆銆璇存槑涓浜涘唴瀛樻搷浣滃嚱鏁?鍏朵腑澶у鏁頒篃鍦⊿TRING.H 涓鏄?銆?br />PROCESS.H 銆銆璇存槑榪涚▼綆$悊鐨勫悇涓嚱鏁幫紝spawn鈥﹀拰EXEC 鈥﹀嚱鏁扮殑緇撴瀯璇存槑銆?br />SETJMP.H 銆銆 瀹氫箟longjmp鍜宻etjmp鍑芥暟鐢ㄥ埌鐨刯mp buf綾誨瀷錛?璇存槑榪欎袱涓嚱鏁般?br />SHARE.H 銆銆銆瀹氫箟鏂囦歡鍏變韓鍑芥暟鐨勫弬鏁般?br />SIGNAL.H 銆銆 瀹氫箟SIG[ZZ(Z] [ZZ)]IGN鍜孲IG[ZZ(Z] [ZZ)]DFL甯擱噺錛岃鏄巖ajse鍜宻ignal涓や釜鍑芥暟銆?br />STDARG.H 銆銆 瀹氫箟璇誨嚱鏁板弬鏁拌〃鐨勫畯銆?濡倂printf,vscarf鍑芥暟)銆?br />STDDEF.H 銆銆 瀹氫箟涓浜涘叕鍏辨暟鎹被鍨嬪拰瀹忋?br />STDIO.H 銆銆銆瀹氫箟Kernighan鍜孯itchie鍦║nix System V 涓畾涔夌殑鏍囧噯鍜屾墿灞曠殑綾誨瀷鍜屽畯銆傝繕瀹氫箟鏍囧噯I/O 棰勫畾涔夋祦錛歴tdin,stdout鍜宻tderr錛岃鏄?I/O嫻佸瓙紼嬪簭銆?br />STDLIB.H 銆銆 璇存槑涓浜涘父鐢ㄧ殑瀛愮▼搴忥細杞崲瀛愮▼搴忋佹悳绱? 鎺掑簭瀛愮▼搴忕瓑銆?br />STRING.H 銆銆 璇存槑涓浜涗覆鎿嶄綔鍜屽唴瀛樻搷浣滃嚱鏁般?br />SYS\STAT.H 銆 瀹氫箟鍦ㄦ墦寮鍜屽垱寤烘枃浠舵椂鐢ㄥ埌鐨勪竴浜涚鍙峰父閲忋?br />SYS\TYPES.H 銆璇存槑ftime鍑芥暟鍜宼imeb緇撴瀯銆?br />SYS\TIME.H 銆 瀹氫箟鏃墮棿鐨勭被鍨媡ime[ZZ(Z] [ZZ)]t銆?br />TIME.H 銆銆銆 瀹氫箟鏃墮棿杞崲瀛愮▼搴廰sctime銆乴ocaltime鍜実mtime鐨勭粨鏋勶紝ctime銆?difftime銆?gmtime銆?localtime鍜宻time鐢ㄥ埌鐨勭被鍨嬶紝騫舵彁渚涜繖浜涘嚱鏁扮殑鍘熷瀷銆?br />VALUE.H 銆銆銆瀹氫箟涓浜涢噸瑕佸父閲忥紝 鍖呮嫭渚濊禆浜庢満鍣ㄧ‖浠剁殑鍜屼負涓嶶nix System V鐩稿吋瀹硅岃鏄庣殑涓浜涘父閲忥紝鍖呮嫭嫻偣鍜屽弻綺懼害鍊肩殑鑼冨洿銆?br />
]]>
C++鏄竴闂ㄥ箍娉涚敤浜庡伐涓氳蔣浠剁爺鍙戠殑澶у瀷璇█銆傚畠鑷韓鐨勫鏉傛у拰瑙e喅鐜板疄闂鐨勮兘鍔涳紝浣垮叾鏋佸叿瀛︽湳鐮旂┒浠峰煎拰宸ヤ笟浠峰箋傚拰C璇█涓鏍鳳紝C++宸茬粡鍦ㄨ澶氶噸瑕佺殑棰嗗煙澶ц幏鎴愬姛銆?
鐒惰岋紝涓涓笉鍙惁璁ょ殑鐜板疄鏄紝鍦ㄤ綆闃剁▼搴忚璁¢鍩燂紝C++鎸ゅ帇鐫C鍚屾椂涔熷湪鎵垮彈鐫C鐨勫己鐑堝弽寮癸紝鑰屽湪楂橀樁紼嬪簭璁捐棰嗗煙錛孞ava鍜孋#姝e湪涓嶆柇铓曢鐫C++鐨勫湴鐩樸備篃璁窩++涓嶤鍚堜負涓浣撴案榪滈兘鏄竴涓ⅵ鎯籌紝涔熻Java鍜孋#鐨勭媯娼粓灝嗚揩浣緾++鍥炲綊鏈綅聽鈥斅犲洖鍒板畠鏈夌潃鏍規湰鎬т紭鍔跨殑寮鍙戦鍩燂細浣庣駭緋葷粺紼嬪簭璁捐銆侀珮綰уぇ瑙勬ā楂樻ц兘搴旂敤璁捐銆佸祵鍏ュ紡紼嬪簭璁捐浠ュ強鏁板肩瀛﹁綆楃瓑銆傛灉鐪熷姝わ紝鎴戣涓鴻繖鏈皾涓嶆槸涓浠跺ソ浜嬨?
C++鍚稿紩濡傛涔嬪鐨勬櫤鍔涙姇鍏ワ紝浠ヨ嚦浜庤繖涓鍩熺殑浼樼浣滃搧錛屽寘鎷噸閲忕駭鐨勮蔣浠朵駭鍝併佺▼搴忓簱浠ュ強涔︾睄絳夛紝鏁頒笉鑳滄暟銆傛枃棰樷淐++紼嬪簭璁捐涔嬪洓涔︿簲緇忊濅竴涓笉澶弗鏍肩殑鍚箟鏄細C++紼嬪簭璁捐涔嬪洓涔β犫吂聽浜旂粡銆傛槸鐨勶紝鍦ㄦ湰鏂囷紙鍙婂叾涓嬬瘒錛変腑錛屾垜灝嗗垎闂ㄥ埆綾繪帹鑽?0澶氭湰C++濂戒功錛屼綘鍙互鏍規嵁鑷繁鐨勯渶瑕侀夎銆?
TCPL鍜孌&E
TCPL鍜孌&E鍒嗗埆鏄奣he聽C++聽Programming聽Language銆嬪拰銆奣he聽Design聽and聽Evolution聽of聽C++銆嬬殑綆縐幫紝鍧囧嚭鑷狟jarne聽Stroustrup涔嬫墜銆傛垜灝嗗畠浠崟鍒楀嚭鏉ワ紝棣栧厛鏄洜涓築jarne鏄疌++璇█鐨勫垱寤鴻咃紝鐒跺悗鏄洜涓烘瘮鈥滈鍏堚濋偅涓師鍥犳洿閲嶈鐨勫師鍥狅細榪欎袱鏈功鏄疌++棰嗗煙姣嬪焊緗枒鐨勬澃浣溿傝瀹冧滑鏄疌++璇█鍦g粡錛屽茍涓嶄負榪囥?
Bjarne聽Stroustrup,聽The聽C++聽Programming聽Language聽(Special聽3rd聽Edition)
銆奀++紼嬪簭璁捐璇█錛堢壒鍒増錛夈嬶紝鏈烘宸ヤ笟鍑虹増紺?
銆奀++紼嬪簭璁捐璇█錛堢壒鍒増錛夛紙鑻辨枃褰卞嵃鐗堬級銆嬶紝楂樼瓑鏁欒偛鍑虹増紺?
榪勪粖涓烘錛孴CPL鏄櫎浜咰++鏍囧噯鏂囩尞涔嬪鏈鏉冨▉鐨凜++鍙傝冩墜鍐屻傚拰澶у鏁頒漢鐨勭湅娉曚笉澶т竴鏍鳳紝鎴戣涓築jarne鐨勬枃瀛楄璦騫朵笉閫婅壊浜庝粬鎵鍒涘緩鐨勭▼搴忚璦錛岃嚦灝戞垜鍠滄榪欑瀛﹂櫌姘旀伅嫻撳帤鐨勪綔鍝併傛湰涔﹀C++璇█鐨勬弿榪拌疆寤撻矞鏄庛佺洿鎴簡褰撱傚畠浠嶤++璇█鍒涘緩鑰呯殑瑙掑害鏉ヨ瀵烠++錛岃繖鏄換浣曞埆鐨勪綔鑰呭拰涔︾睄鍋氫笉鍒扮殑聽鈥斅犳病鏈変換浣曚漢姣擝jarne鑷繁鏇存竻妤氳鎬庝箞鏉ヤ嬌鐢–++銆?
榪欐槸涓鏈弗鑲冪殑钁椾綔錛屼互涓侀珮綰++寮鍙戜漢鍛樹負鐩爣璇昏呫傚鏋滀綘鏄竴鍚嶆湁緇忛獙鐨凜++紼嬪簭鍛橈紝闇瑕佷簡瑙f洿鍔犳湰璐ㄧ殑C++鐭ヨ瘑錛屾湰涔︽鏄負浣犺屽啓銆傚畠涓嶆槸閭g璁╀綘鐪嬩簡浼氫笉鏂獌鍠滅殑灝忎功錛岄渶瑕佺敤蹇冧綋浼氾紝鍙嶅鍜鍤箋傚湪闃呰榪囩▼涓紝璇風壒鍒暀蹇傿jarne鍏堢敓寮鴻皟浜嗕粈涔堬紝鍙堝浠涔堜竴璇甫榪囥傛垜涓漢姣旇緝鍠滄榪欐湰涔︾殑絎洓閮ㄥ垎鈥滀嬌鐢–++鍋氳璁♀濓紝榪欐牱鐨勫唴瀹瑰湪綾諱技鐨勭▼搴忚璁¤璦涔︾睄涓緢闅劇湅鍒奧犫斅犳垜鐢氳嚦璁や負Bjarne搴旇灝嗚繖閮ㄥ垎鐙珛鍑烘潵鍗曠嫭鍐欎竴鏈功銆?
Bjarne聽Stroustrup,聽The聽Design聽and聽Evolution聽of聽C++
銆奀++璇█鐨勮璁″拰婕斿寲銆嬶紝鏈烘宸ヤ笟鍑虹増紺?
銆奀++璇█鐨勮璁″拰婕斿寲錛堣嫳鏂囩増錛夈嬶紝鏈烘宸ヤ笟鍑虹増紺?
D&E鏄竴鏈叧浜嶤++璇█璁捐鍘熺悊銆佽璁″喅絳栧拰璁捐鍝插鐨勪笓钁椼傚畠娓呮櫚鍦板洖絳斾簡C++涓轟粈涔堜細鎴愪負浠婂ぉ榪欎釜鏍峰瓙鑰屾病鏈夊彉鎴愬彟澶栦竴縐嶈璦銆備綔涓篊++璇█鐨勫垱寤鴻咃紝Bjarne娣嬫紦灝借嚧鍦板睍紺轟簡浠栫嫭鍒拌屾繁鍒葷殑瑙佽В銆傞櫎浜嗗箍鍙楄禐瑾夌殑璇█鐗規у錛孊jarne娌℃湁鍥為伩閭d簺寮曡搗浜夎鐨勭敋鑷寵鎷掔粷鐨凜++鐗規э紝浠栦竴涓緇欏嚭浜嗛昏緫涓ュ瘑銆佷護浜轟俊鏈嶇殑瑙i噴銆傚唴瀹規兜鐩朇++鐨勫彶鍓嶆椂浠c佸甫綾葷殑C銆丆++鐨勮璁¤鍒欍佹爣鍑嗗寲銆佸簱銆佸唴瀛樼鐞嗐佸閲嶇戶鎵褲佹ā鏉跨瓑錛屽鍖呮嫭寮傚父鏈哄埗銆佽繍琛屾椂綾誨瀷淇℃伅鍜屽悕瀛楃┖闂村湪鍐呯殑閲嶈鐨勬柊鐗規ч兘鍒嗗埆榪涜浜嗘繁鍏ユ帰璁ㄣ傛瘡涓鍚岰++紼嬪簭鍛橀兘搴旇鍙互浠嶣jarne鐨勯槓閲婁腑鍔犳繁瀵規墜涓繖闂ㄨ璦鐨勮璇嗐?
闇瑕佸啀嬈℃彁閱掔殑鏄紝榪欎袱鏈功鐭ヨ瘑嫻撶緝錛屼俊鎭噺鏋佸ぇ錛岃涓嶈閿欒繃Bjarne姣忎竴鍙ョ湅浼兼極涓嶇粡鎰忕殑璇濄?
鍏ラ棬鏁欑▼
瀛︿範浠諱綍涓闂ㄨ璦閮介渶瑕佷竴涓粠鍏ラ棬鍒扮簿閫氥佷粠鏂版墜鍒伴珮鎵嬪驚搴忔笎榪涚殑榪囩▼銆備笉榪囷紝瀵逛簬涓涓墍璋撶殑鏂版墜鑰岃█錛岀┒绔熸槸涓涓畬瀹屽叏鍏ㄧ殑鏂版墜錛岃繕鏄竴涓啛鎮夋煇縐嶅埆鐨勮璦鐨勨滄柊鎵嬧濓紝鐢氳嚦鏄湪鏌愮璇█紼嬪簭璁捐棰嗗煙宸茬粡棰囨湁寤烘爲鐨勯珮鎵嬶紝寰堥毦涓姒傝岃錛熶笉鍚岀殑C++鏂版墜闇瑕佷笉鍚岀殑鍏ラ棬涔︾睄銆?
Andrew聽Koenig,聽Barbara聽E.聽Moo,聽Accelerated聽C++:聽Practical聽Programming聽by聽Example
銆夾ccelerated聽C++涓枃鐗堛嬶紝涓浗鐢靛姏鍑虹増紺?
鍜屽競闈笂澶у鏁癈++鏁欑▼涓嶅悓錛屾湰涔︿笉鏄粠鈥淐++涓殑C鈥濆紑濮嬭瑙o紝鑰屾槸濮嬩簬鍦伴亾鐨凜++鐗規с備粠涓寮濮嬪氨浣跨敤鏍囧噯搴撴潵鍐欑▼搴忥紝闅忕潃璁茶堪鐨勯愭笎娣卞叆錛屽張涓涓瑙i噴榪欎簺鏍囧噯搴撶粍浠舵墍渚濊禆鐨勫熀紜姒傚康銆傚彟澶栵紝鍜屽叾浠朇++鏁欐潗涓嶅悓鐨勬槸錛岃繖鏈功浠ュ疄渚嬫媺鍔ㄨ璦鍜屾爣鍑嗗簱鐨勮瑙o紝瀵瑰悗涓よ呯殑璁茶В鏄負浜嗙粰瀹炰緥紼嬪簭鎻愪緵鏀寔錛岃屼笉鏄儚緇濆ぇ澶氭暟C++鏁欐潗閭f牱錛屼緥瀛愬彧鏄敤浣滄紨紺鴻璦鐗規у拰鏍囧噯搴撶敤娉曠殑杈呭姪宸ュ叿銆?
浣滆呭湪C++棰嗗煙鐨勭紪紼嬪疄璺點佹暀鑲插煿璁互鍙婃妧鏈啓浣滄柟闈㈤兘鏄笘鐣屼竴嫻佹按鍑嗐傛垜鍠滄榪欑澶ч噺浣跨敤鏍囧噯搴撳拰C++璇█鍘熺敓鐗規х殑娓呮柊鐨勫啓浣滈鏍箋傚湪榪欐湰鏁欐潗闈㈠墠錛屽嚑涔庤縿浠婁負姝㈢殑鎵鏈塁++鏁欐潗閮介化鐒跺け鑹叉垨鏄懼緱榪囨椂銆傚敖綆¤繖鏈暀鏉愪篃璁稿浜庡浗鍐呯殑楂樻牎鏁欒偛鏉ヨ鏈変簺鍓嶅崼錛屼笉榪囨垜浠嶇劧鏋佸姏鍚戞垜鐨勫悓琛屼滑鎺ㄨ崘銆傞『甯︿竴鎻愶紝鍦˙jarne鍜屾垜鏈榪戠殑涓灝侀氫俊閲岋紝浠栬繖鏍瘋瘎浠鋒湰涔︼細瀵逛簬鏈夌粡楠岀殑紼嬪簭鍛樺涔燙++鑰岃█錛岃繖鏈功鍙兘鏄笘鐣屼笂鏈濂界殑涓鏈?
Stanley聽B.Lippman,聽Josee聽Lajoie,聽C++聽Primer聽(3rd聽Edition)
銆奀++聽Primer聽(3RD)涓枃鐗堛嬶紝涓浗鐢靛姏鍑虹増紺?
榪欐湰涔︾殑鍚嶅瓧澶氬皯鏈夌偣璁╀漢璇В銆傚敖綆′綔鑰呭0縐拌繖鏈功鏄負C++鏂版墜鑰屽啓錛屼絾鏃犺鏄畠鐨勫帤搴﹁繕鏄瑙g殑娣卞害閮芥毚闇蹭簡浼間箮騫墮潪濡傛銆備篃璁歌瀹冩槸涓鏈滀粠鍏ラ棬鍒扮簿閫氣濈殑C++鏁欑▼浼氭洿鍚堥備竴浜涖傛垜涓漢璁や負瀹冨茍涓嶉傚悎瀹屽叏涓嶆噦C++鐨勫垵瀛﹁吢犫斅犲湪闃呰榪欐湰涔︿箣鍓嶏紝浣犺嚦灝戝簲璇ュ厛鏈夐偅涔堜竴鐐笴鎴朇++鐨勮儗鏅煡璇嗭紝鎴栬呰嚦灝戣鍏鋒湁涓浜涘叾浠栬璦鐨勭紪紼嬬粡楠屻?
灝界榪欐湰涔︾渷鐣ヤ簡涓浜涢珮綰++鐗規х殑璁ㄨ錛屼絾浠嶇劧鍙互縐板緱涓婃槸榪勪粖涓烘鏈鍏ㄩ潰鐨凜++瀛︿範鏁欑▼銆備簨瀹炰笂錛屽鏋滀竴鍚岰++鍒濆鑰呰兘澶熸墡鎵庡疄瀹炲湴璇誨畬鏈功騫跺鐓с奀++聽Primer聽Answer聽Book銆嬪畬鎴愬叏閮ㄤ範棰樼殑璇濓紝浠栫殑姘村鉤鑲畾鍙互榪涘叆鑱屼笟C++紼嬪簭鍛樼殑琛屽垪銆傛垜涓漢璁や負錛屽嵆浣夸綘宸茬粡鎷ユ湁浜員CPL錛岃繖鏈功渚濈劧鏈夋嫢鏈夌殑浠峰鹼紝鍥犱負鍦ㄨ澶氭柟闈㈠畠姣擳CPL鏉ュ緱鏇磋緇嗐佹洿鏄撴噦銆?
Stanley聽B.聽Lippman,聽Essential聽C++
銆奅ssential聽C++涓枃鐗堛嬶紝鍗庝腑縐戞妧澶у鍑虹増紺?
銆奅ssential聽C++錛堝獎鍗扮増錛夈嬶紝涓浗鐢靛姏鍑虹増紺?
鍙互涓嶅お涓ユ牸鍦拌涓鴻繖鏈功鏄奀++聽Primer銆嬬殑綺劇畝鐗堛傛湰涔︿竴涓璁茶堪浜咰++涓渶鍏蜂唬琛ㄦх殑涓婚錛屽寘鎷繃紼嬪紡緙栫▼銆佹硾鍨嬬紪紼嬨佸熀浜庡璞$紪紼嬨侀潰鍚戝璞$紪紼嬨佹ā鏉跨紪紼嬩互鍙婂紓甯稿鐞嗙瓑銆係tanley灝嗛棬妲涜皟浣庡埌鈥滃叿鏈夊叾浠栬璦紼嬪簭璁捐緇忛獙鈥濈殑C++鏂版墜鎵鑳芥帴鍙楃殑鏈鍩烘湰鐨勫眰嬈★紝浣夸粬浠兘澶熻繀閫熷紑濮嬩嬌鐢–++緙栫▼鑰屽張鍏嶄簬闃呰銆奀++聽Primer銆嬮偅鏍風殑澶ч儴澶淬傚畠浠ュ疄渚嬪紩瀵煎涔狅紝鍔涘浘浣胯鑰呭湪鏈鐭殑鏃墮棿鍐呮妸鎻++鐨勭簿綺廣?
涔熻鎹竴涓漢鏉ユ榪癈++緙栫▼鑼冨瀷錛坧aradigm錛夌殑鏂規柟闈㈤潰闇瑕佸ソ鍑犵櫨欏墊墠鑳借娓呮錛屼絾榪欐湰灝忎功涓嶅彲鎬濊鍦板仛鍒頒簡榪欎竴鐐廣傛垜涓漢闈炲父鍠滄榪欑婊℃槸鎶鏈佺畝鏄庢壖瑕佸茍涓斺滄湁璇濆ソ濂借鈥濈殑涔︺傝繖鏈功鍚屾牱鍏鋒湁涓涓槑鏄劇殑椋庢牸錛氭墍鏈夌▼搴忎緥瀛愬叏閮ㄩ噰鐢ㄦ爣鍑嗗簱緇勪歡錛岃浜鴻崇洰涓鏂般?
浠ヤ笂涓夋湰涔﹂兘涓嶆槸涓轟簡瀹屽畬鍏ㄥ叏鐨勭紪紼嬫柊鎵嬭屽啓銆傚畬鍏ㄧ殑C++緙栫▼鏂版墜鍙互闃呰Francis聽Glassborow鐨勬柊涔︼紙灝氭湭鍑虹増錛夛細銆夾聽Beginners聽Introduction聽to聽Computer聽Programming聽:聽You聽Can聽Do聽It!銆嬨傝繖涔熸槸Bjarne鐨勬帹鑽愩侳rancis聽Glassborow鏄疉CCU涓誨腑錛屽騫存潵浠栧鍑犱箮姣忎竴鏈珻++緇忓吀鍚嶈憲璇勫ご璁鴻凍錛屼粬鑷繁鐨勮繖涓鏈嚜鐒朵細寮曡搗C++紺劇兢鐨勬瀬澶у叴瓚c?
楂樻晥銆佸仴澹紪紼?
涓ゅ勾鍓嶆垜鍦ㄨ礋璐d竴涓渷綰х數鍔涜皟搴︾郴緇熼」鐩椂緙栧啓浜嗕竴涓綉鍏崇▼搴忥紝瀹冧粠SCADA緋葷粺鑾峰彇鐢靛姏瀹炴椂淇℃伅銆傞氳鎺ュ彛閲囩敤浜嗕笉甯哥敤鐨勬暟鎹簱鐩磋繛鏂瑰紡錛堣繖涓綉鍏崇▼搴忎竴绔繛鎺QL聽Server聽6.5錛屽彟涓绔繛鎺ralce聽8.1.6錛夈傜敱浜庡疄鏃舵祴鐐硅繎涓囷紝姣忔灝嗗叏閮ㄥ彇鏍鋒洿鏂版垨鎻掑叆涓閬嶆樉鐒舵槸浣庢晥鐨勩傛垜鍦ㄧ綉鍏崇▼搴忛噷寤轟簡涓涓唴瀛樺簱錛岃幏鍙栧埌鐨勬暟鎹鍏堝湪鍏朵腑榪涜姣旇緝錛岀劧鍚庡喅瀹氭槸鍚︽洿鏂扮墿鐞嗘暟鎹簱錛堝悓鏃惰繕鍋氫簡鍒殑鏇村鏉傜殑浜嬫儏鈥︹︼級錛屼粠鑰屽湪鏁堢巼鍜岃祫婧愬崰鐢ㄤ袱鏂歸潰杈懼埌浜嗛鏈熸晥鏋溿?
榪欎釜紼嬪簭涓鐩磋繍琛屽緱寰堝ソ錛屼絾鍦ㄧ寮鐜板満涔嬪悗鐨勬煇涓澶╋紝緋葷粺綆$悊鍛樻墦鏉ョ數璇濓紝璇村ぇ姒傚洜涓虹綉緇滄晠闅滅瓑鍘熷洜錛屾湁鏃惰繖涓綉鍏崇▼搴忎細宕╂簝鎺壜犫斅犲畠鑷繁宕╂帀涔熷氨緗簡錛岄棶棰樻槸瀹冭繕浼氭妸Windows聽2000聽Advanced聽Server鎼炴垚鈥滆摑灞忊濓紒鍧︾櫧鍦拌錛屾垜榪樹粠鏉ユ病鐪嬭繃鍝釜闈炶搫鎰忕殑紼嬪簭鏈夎繖涓滆兘鑰愨濄傜敱浜庡綋鏃舵蹇欎簬鍙﹀涓涓ぇ欏圭洰錛屾棤娉曞幓鐜板満璋冭瘯錛屾渶鍚庡彧鏈夊嚟緇忛獙瀵瑰唴瀛樺簱浠g爜灝忓績緲肩考鍦板皝瑁呬互寮傚父澶勭悊浠g爜錛堝悓鏃朵篃鍋氫簡涓浜涘埆鐨勪慨鏀光︹︼級銆傝繖鏍鳳紝铏界劧娌℃湁褰誨簳瑙e喅闂錛屼絾紼嬪簭緇堢┒涓嶅啀姝誨緱閭d箞闅劇湅浜嗐?
鍦ㄨ繖鍎胯榪欎箞涓孌佃姳緄湁浠涔堟剰鎬濆憿錛堝綋鍒濅負閭d釜鍙曠殑bug鏈濇濇毊鎯蟲椂鎴戝彲涓嶈涓鴻繖鏄竴涓滆姳緄濓級錛熸垜鎯寵鐨勬槸錛屽浜庝換浣曡蔣浠惰岃█錛岀寮寮哄仴錛屾晥鐜囦篃灝辨棤浠庤皥璧楓傝屽浜嶤++紼嬪簭鍛樻潵璇達紝涔熻緙栧啓涓涓珮鏁堢殑紼嬪簭騫朵笉闅撅紝浣嗚緙栧啓涓涓渶瑕?聽鈪孤?4灝忔椂鎸佺畫榪愯鐨勬湇鍔$杞歡灝變笉鏄偅涔堝鏄撲簡錛岄渶瑕佽冭檻璁稿鍥犵礌錛屾湁鏃惰繖浜涘洜绱犵敋鑷寵繙榪滆秴鍑篊++璇█鍜屽紑鍙戝伐鍏風殑鏈韓銆備綔涓轟竴鍚嶅紑鍙戝疄闄呴」鐩蔣浠剁殑紼嬪簭鍛橈紝騫墮潪闈炲緱鑷繁紕伴拤瀛愭墠鑳界Н绱粡楠岋紝鍙鎴戜滑瓚沖铏氬績錛屽埆浜虹殑緇忛獙寰寰閮芥槸鎴戜滑寰堝ソ鐨勫熼壌銆傞壌浜庢錛屾垜鎺ㄨ崘浠ヤ笅鍑犳湰涔︿緵浣犻夎錛屽畠浠彲浠ヨ浣犱粠寮哄仴鍜屾晥鐜囦袱鏂歸潰鍙楃泭錛堝綋鐒朵簡錛屽畠浠兜鐩栫殑鍐呭榪滀笉闄愪簬寮傚父澶勭悊J錛夈?
Scott聽Meyers,聽Effective聽C++:聽50聽Specific聽Ways聽to聽Improve聽Your聽Programs聽and聽Design聽(2nd聽Edition)
Scott聽Meyers,聽More聽Effective聽C++:聽35聽New聽Ways聽to聽Improve聽Your聽Programs聽and聽Designs
銆奅ffective聽C++涓枃鐗堛嬶紝鍗庝腑縐戞妧澶у鍑虹増紺?
銆奙ore聽Effective聽C++涓枃鐗堛嬶紝涓浗鐢靛姏鍑虹増紺?
銆奅ffective聽C++錛堝獎鍗扮増錛夈嬶紝涓浗鐢靛姏鍑虹増紺?
濡傛灉璇淬奅ffective聽C++銆嬩富瑕佽璁篊++涓竴浜涚浉瀵瑰熀紜鐨勬蹇靛拰鎶宸х殑璇濓紝閭d箞銆奙ore聽Effective聽C++銆嬪垯鐫閲嶆帰璁ㄤ簡鍖呮嫭寮傚父澶勭悊鍦ㄥ唴鐨勪竴緋誨垪楂樼駭鎶鏈備笌鍓嶈呯浉姣旓紝鍚庤呭叿鏈変袱澶т富瑕佸尯鍒細鍏朵竴錛屽畠鍖呭惈寰堝鏃舵柊鐨勬爣鍑咰++鐨勫唴瀹癸紱絎簩錛屽畠璁ㄨ鐨勪富棰樺懼悜浜庘滄垬鐣ュ寲鈥濊岄潪鈥滄垬鏈寲鈥濓紝騫朵笖璁ㄨ寰楁洿娣卞叆銆佹洿褰誨簳銆傚挨鍏舵槸瀵硅櫄鏋愭瀯鍑芥暟銆佹櫤鑳芥寚閽堛佸紩鐢ㄨ鏁頒互鍙婁唬鐞嗙被錛坧roxy聽classe錛夌瓑鎶鏈拰妯″紡璁鴻堪鐨勬繁鍏ョ▼搴︼紝璁╀漢寰堥毦鎯寵薄鏄嚭鐜頒簬榪欐牱鐨勪竴鏈皬涔︿箣涓?
娓稿垉鏈変綑鐨勬妧鏈紝楂樿秴鐨勫啓浣滄妧宸э紝Scott鏃犵枒鏄笘鐣屼笂鏈浼樼鐨凜++鎶鏈綔瀹朵箣涓銆傚湪綆媧併佹竻鏅般佹槗璇葷瓑鏂歸潰錛岃繖涓ゆ湰涔﹂兘鍗撳皵涓嶇兢銆傛諱箣錛孲cott鎻愪緵鐨勮繖85涓彲浠ユ敼鍠勭紪紼嬫妧鏈拰璁捐鎬濈淮鐨勬柟娉曪紝閮芥槸涓侀珮綰++紼嬪簭鍛樺繀澶囩殑鎶鑳姐傛垜寮虹儓鎺ㄨ崘榪欎袱鏈功錛堝疄闄呬笂榪樻湁涓鏈紝紼嶅悗灝變細鐪嬪埌錛夈?
Herb聽Sutter,聽Exceptional聽C++:聽47聽Engineering聽Puzzles,聽Programming聽Problems,聽and聽Solutions
Herb聽Sutter,聽More聽Exceptional聽C++:聽40聽New聽Engineering聽Puzzles,聽Programming聽Problems,聽and聽Solutions
銆奅xceptional聽C++涓枃鐗堛嬶紝涓浗鐢靛姏鍑虹増紺?
銆奙ore聽Exceptional聽C++涓枃鐗堛嬶紝鍗庝腑縐戞妧澶у鍑虹増紺?
浣犺嚜璁や負鏄竴鍚岰++璇█涓撳鍚楋紵璇諱竴璇籌SO聽C++鏍囧噯濮斿憳浼氱涔﹂暱鐨勮繖涓ゆ湰涔﹀啀鍥炵瓟銆傚湪榪欎袱鏈功涓紝Herb閲囩敤浜嗏滈棶絳斺濈殑鏂瑰紡鎸囧浣犲涔燙++璇█鐗規с傚浜庢瘡涓涓笓棰橈紝Herb棣栧厛鍚堢悊鍦拌鎯沖嚭浣犵殑鐤戦棶鍜屽洶鎯戯紝鎺ョ潃鍙堢寽嫻嬪嚭浣犲崄鏈夊叓涔濇槸閿欒鐨勮В絳旓紝鐒跺悗緇欎綘浠ユ寚鐐瑰茍鎻愬嚭鏈浣寵В鍐蟲柟妗堬紝鏈鍚庤繕褰掔撼鍑鴻В鍐崇被浼奸棶棰樼殑鏅傛у師鍒欍?
榪欎袱鏈功鏄吀鍨嬬殑娣辯┒C++璇█緇嗚妭鐨勮憲浣滐紝寰堣杽錛屼絾鍐呭瀵嗛泦錛岃繙榪滆秴榪嘢cott鐨勯偅涓ゆ湰涔︼紝璇昏搗鏉ュ緢璐硅剳絳嬄犫斅犳垜涓漢璁や負瀹冧滑瑕佹瘮Scott鐨勪功闅炬噦寰楀銆傝嫢瑕佺爺涔犺繖钖勮杽鐨勪袱鏈功鎵鍖呭惈鐨勭煡璇嗭紝鑷沖皯闇瑕佽姳璐規暟鏈堢殑鏃墮棿錛侊紙鍦⊿cott鐨勮崘搴忎腑錛屼粬鍧﹂檲涓嶆涓嬈¢櫡鍏otW闂鐨勯櫡闃憋紝浣犲簲璇ョ煡閬撹繖鎰忓懗鐫浠涔堬級瀵逛簬璇█緇嗚妭鐨勬繁絀舵湁浠涔堝ソ澶勫憿錛熷敖綆″湪澶у鏁版儏鍐典笅錛屾垜浠笉蹇呭叧蹇僀++浠g爜騫曞悗鐨勫姩浣滐紝鐒惰屽綋鎴戜滑涓嶅緱涓嶅叧蹇冩椂錛岃繖涓ゆ湰涔﹀彲浠ヤ負鎴戜滑鎻愪緵寰堝ソ鐨勭嚎绱紝鍥犱負瀹冧滑鎻ず浜咰++璇█涓井濡欒屽張鑷沖叧閲嶈鐨勪笢瑗褲?
Stephen聽C.聽Dewhurst,聽C++聽Gotchas:聽Avoiding聽Common聽Problems聽in聽Coding聽and聽Design
銆奀++紼嬪簭璁捐闄烽槺銆嬶紝涓浗闈掑勾鍑虹増紺?
Stephen鐨勭悊璁虹礌鍏誨拰瀹炶返緇忛獙娉ㄥ畾榪欐槸涓鏈煎緱涓璇葷殑濂戒功銆係tephen鏇劇粡鏄礉灝斿疄楠屽涓涓鎵笴++浣跨敤鑰呫備粬宸茬粡浣跨敤C++鎴愬姛瑙e喅浜嗗寘鎷紪璇戝櫒銆佽瘉鍒鎬氦鏄撱佺數瀛愬晢鍔′互鍙婂祵鍏ュ紡緋葷粺絳夐鍩熶腑鐨勯棶棰樸傛湰涔︽眹闆嗕簡浣滆呮潵鑷紑鍙戜竴綰跨殑99鏉$紪紼嬬湡鐭ョ伡瑙侊紝媧炴倝瀹冧滑錛屼綘鍙互閬垮厤鍑犱箮鎵鏈夊父瑙佺殑C++璁捐鍜岀紪紼嬮棶棰樸?
鎴戠敋鑷寵涓猴紝瀵逛簬C++緙栫▼鑿滈笩鑰岃█錛岄槄璇昏繖鏈功浼氭瘮闃呰Scott鍜孒erb鐨勪功鏇磋兘杞繪澗鑰岀珛绔胯褰卞湴鑾峰緱鏇村ぇ鐨勬彁楂樸傛垜涓漢寰堝枩嬈㈣繖鏈功鐨勫啓浣滈鏍悸犫斅燬tephen鐨勮澶氳鐐圭湅浼兼瀬绔嵈鏃犲彲杈╅┏銆傚綋鐒朵簡錛岃繖縐嶈嚜淇★紙浠ュ強鍐峰菇榛橈級鏉ヨ嚜浜庝綔鑰呮繁鍘氱殑鎶鏈礌鍏伙紝鑰岄潪鑷ぇ鐨勫亸鎵с?
闄や簡涓婇潰鎺ㄨ崘鐨勪功綾嶅錛孌ov聽Bulka鍜屄燚avid聽Mayhew鍚堣憲鐨勩奅fficient聽C++:聽Performance聽Programming聽Techniques銆嬶紙銆婃彁楂楥++鎬ц兘鐨勭紪紼嬫妧鏈嬶紝娓呭崕澶у鍑虹増紺撅級涔熷煎緱涓鐪嬨傝繖鏈秴钖勫皬涔﹁仛鐒︿簬楂樻ц兘C++搴旂敤紼嬪簭寮鍙戙備袱浣嶄綔鑰呴兘鏄疘BM杞歡涓撳錛岄兘宸ヤ綔浜庡鎬ц兘瑕佹眰鏋侀珮鐨勭郴緇熸瀯寤洪鍩燂紝鏈功鏄粬浠殑緇忛獙涔嬭皥銆備篃鏈変漢涓嶅枩嬈㈣繖鏈功錛屽洜涓哄畠鑺變簡涓嶅皯鐨勭瘒騫呰榪板拰C++鏃犲叧鐨勪笢瑗匡紝鎴戝嵈鎭版伆鍥犱負榪欎竴鐐硅屽榪欐湰涔︿駭鐢熷ソ鎰燂紝姝f槸榪欎簺涓滆タ璁╂垜寮闃斾簡鐪肩晫銆?
妯℃澘鍜屾硾鍨嬬紪紼?
妯℃澘鍜屽熀浜庢ā鏉跨殑娉涘瀷緙栫▼鏃犵枒鏄綋浠婂彂灞曟渶媧昏穬鐨凜++紼嬪簭璁捐鎶鏈傛ā鏉跨殑絎竴涓潻鍛芥х殑搴旂敤鏄疭TL錛屽畠灝嗘ā鏉挎妧鏈湪娉涘瀷瀹瑰櫒鍜岀畻娉曢鍩熺殑榪愮敤灞曠幇寰楁穻婕撳敖鑷達紝鑰孊oost銆丩oki絳夌幇浠g▼搴忓簱鍒欏皢妯℃澘鎶鏈殑娼滆兘涓嶆柇鍙戞尌鍒版瀬鑷淬傚湪妯℃澘鍜屾硾鍨嬬紪紼嬮鍩燂紝鎴戞帹鑽愪互涓嬩袱鏈噸閲忕駭钁椾綔錛?
David聽Vandevoorde,聽Nicolai聽M.聽Josuttis,聽C++聽Templates:聽The聽Complete聽Guide
銆奀++聽Templates鍏ㄨ錛堢箒浣撶増錛夈嬶紝鍙版咕紕佸嘲璧勮鑲′喚鏈夐檺鍏徃
銆奀++聽Templates鍏ㄨ錛堢畝浣撶増錛夈嬶紝浜烘皯閭數鍑虹増紺?
鏈変竴縐嶈佸鐨勮禐緹庝竴鏈功鐨勬墜娉曪紝澶ц嚧鏄滄病鏈夌湅榪囪繖鏈功錛屼綘灝辨庝箞鎬庝箞鍦扳濓紝榪欓噷闈㈠線寰澶稿紶鐨勬垚鍒嗗眳澶氥備笉榪囷紝鍊樿嫢璇粹滄病鏈夌湅榪囥奀++聽Templates:聽The聽Complete聽Guide銆嬶紝浣犲氨涓嶅彲鑳界簿閫欳++妯℃澘緙栫▼鈥濓紝閭d箞榪欎釜璁烘柇瀵逛簬涓栫晫涓婄粷澶у鏁癈++紼嬪簭鍛樻潵璇存槸鎴愮珛鐨勩?
榪欐湰涔﹀~琛ヤ簡C++妯℃澘涔︾睄棰嗗煙鐢辨潵宸蹭箙鐨勭┖鐧姐傛鍓嶏紝涓婃湁銆奙odern聽C++聽Design銆嬭繖鏍風殑涓撴敞浜庢ā鏉塊珮綰х紪紼嬫妧鏈拰娉涘瀷妯″紡鐨勮憲浣滐紝涓嬫湁銆奣he聽C++聽Standard聽Library銆嬭繖鏍風殑閽堝鐗瑰畾妯℃澘妗嗘灦鍜岀粍浠剁殑浣跨敤鎸囧崡銆傜劧鑰岋紝鍋囧瀵規ā鏉挎満鍒剁己涔忔繁鍏ョ殑鐞嗚В錛屼綘灝卞緢闅鋸滀笂涓嬧濊嚜濡傘傞壌浜庢錛屾垜鍚戞瘡涓浣嶆復鏈涢忓交鐞嗚ВC++妯℃澘鎶鏈殑鏈嬪弸鎺ㄨ崘榪欐湰涔︺?
榪欐湰涔﹀湪鍐呭湴銆佸彴婀懼悇鏈変竴涓瘧鏈紝浣嗗嚭鑷笉鍚岀殑璇戣呬箣鎵嬨傚綋浣犵湅鍒拌繖綃囨枃绔犳椂錛屼袱涓瘧鏈簲璇ラ兘宸茬粡涓婂競錛屽浜庤鑰呮潵璇村綋鐒朵篃灝卞浜嗕竴縐嶉夋嫨銆備警鎹峰厛鐢熶釜浜虹綉绔欎笂寮鏀句簡綣佷綋璇戞湰澶ч儴鍒嗙珷鑺傦紝涓嶅Θ鍏堢澒涓哄揩銆?
Andrei聽Alexandrescu,聽Modern聽C++聽Design:聽Generic聽Programming聽and聽Design聽Patterns聽Applied
銆奀++璁捐鏂版濈淮錛氭硾鍨嬬紪紼嬩笌璁捐妯″紡涔嬪簲鐢ㄣ嬶紝鍗庝腑縐戞妧澶у鍑虹増紺?
銆奀++璁捐鏂版濈淮錛堝獎鍗扮増錛夈嬶紝涓浗鐢靛姏鍑虹増紺?
浣犺嚜璁や負鏄疌++妯℃澘緙栫▼楂樻墜鍚楋紵璇風湅榪囪繖鏈功鍐嶅洖絳擩聽榪欐槸涓鏈嚭鑷ぉ鎵嶄箣鎵嬩護浜烘暚鐣忕殑鏉頒綔銆傛硾鍨嬫ā寮忥紝鏃犻檺寤朵幾浣犵殑瑙嗛噹錛岃凍浠ユ寫鎴樹換浣曚竴鍚岰++紼嬪簭鍛樼殑鎬濈淮鏋侀檺銆?
榪欐湰涔﹀叡鍒嗕負涓ゅぇ閮ㄥ垎錛岀涓閮ㄥ垎璁ㄨ浜喡燣oki紼嬪簭搴撻噰鐢ㄧ殑鍩虹鎶鏈互鍙婁竴浜涢珮綰ц璦鐗規э紝鍖呮嫭鍩轟簬絳栫暐鐨勭被璁捐銆佹ā鏉垮眬閮ㄧ壒鍖栥佺紪璇戞湡鏂█銆乀ypelist浠ュ強灝忓瀷瀵硅薄鍒嗛厤鎶鏈瓑銆傜浜岄儴鍒嗗垯鐫閲嶄粙緇嶄簡Loki涓殑閲嶈緇勪歡鍜屾硾鍨嬫ā寮忔妧鏈紝鍖呮嫭娉涘寲浠垮嚱鏁幫紙Generalization聽Functor錛夈佸崟浠訛紙Singleton錛夈佹櫤鑳芥寚閽堛佸璞″伐鍘傦紙Object聽Factory錛夈佹娊璞″伐鍘傦紙Abstract聽Factory錛夈佽闂咃紙Visitor錛変互鍙婂鏂規硶錛圡ultimethods錛夌瓑銆傛瘡涓縐嶆妧鏈兘璁╀漢澶у紑鐪肩晫錛屽徆涓鴻姝€?
鍦–++鐨勫涔犳柟闈紝榪囩姽涓嶅強寰寰鎴愪簡涓嶆眰鐢氳В鐨勫熷彛銆傜劧鑰岋紝闈㈠悜瀵硅薄騫墮潪C++鐨勫叏閮紝妯℃澘鍜屾硾鍨嬬紪紼嬩害鍗犲崐澹佹睙灞便傚浜庘滀弗鑲冣濈殑C++紼嬪簭鍛樿岃█錛屽強鏃惰窡榪涜繖欏規棭緇忎緥璇佺殑鎴愬姛鎶鏈紝涓嶅け涓烘槑鏅轟箣涓俱?
緇撹
榪欎簺钁椾綔鏄姝ゅぇ鍚嶉紟榧庯紝涔熻鏍規湰涓嶇己鎴戜竴涓帹鑽愩傜劧鑰岋紝綰電劧C++紼嬪簭鍛橀槦浼嶇殑鍙戝睍澹ぇ閫熷害涓嶅儚鍏朵粬鏇存椂楂︾殑璇█閭f牱榪呴燂紝鏂頒漢榪涙繪槸澶氫簬鏃т漢鍑恒傞櫎浜嗙儹蹇卞湴嬈㈣繋鏂頒漢錛屾垜涓漢璁や負鍒頒簡瀵笴++涔︾睄榪涜鈥滅洏鐐光濈殑鏃跺欎簡錛屽茍涓斿笇鏈涜繖鏍風殑鈥滅洏鐐光濇湁鐩婁簬鎰熷叴瓚g殑璇昏呫傝淇濇寔鑰愬績鍜屽鍘氥傚湪涓嬬瘒涓紝鎴戝皢緇х畫浠嬬粛鏍囧噯搴撱佺綉緇滅紪紼嬩互鍙婂叾浠栨柟闈㈢殑C++濂戒功銆傛湁濂戒功鐩鎬即錛岃繖涓啲澶╀笉浼氬喎銆?img src ="http://www.shnenglu.com/threesh/aggbug/13899.html" width = "1" height = "1" />
]]>