资源描述:
《c 中对sprintf函数的说明(the explanation of sprintf function in c )》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、c++中对sprintf()函数的说明(Theexplanationofsprintf()functioninc++)Whenyoubuildallkindsofdataintostrings,thepowerofsprintfrarelyletsyoudown.Becausesprintfisalmostthesameasprintf,it'sonlyprintedindifferentplaces,theformerisprintedinthestring,andthelatterisoutputdirectlyonthecommandline.Ita
2、lsocausessprintftobemuchmoreusefulthanprintf.Sprintfisavariableparameterfunctiondefinedasfollows:Intsprintf(char*buffer,constchar*format[...,argument]...);Inadditiontothefirsttwoparametertypesfixed,therearcanbeconnectedtoanynumberofparameters.Anditsessence,obviouslyinsecondparamet
3、ers:Formattedstring.Printfandsprintfareusedtospecifytheformatstringstringformatintheformatstringtousesomeinternalformatspecifier%atthebeginning(formatspecifications)tooccupyaposition,providethecorrespondingvariableinthebackofthevariableparameterlist,thefinalfunctionisreplacedwitht
4、hecorrespondingpositionofthedescriptorvariables,generatingastringacallerwantsto.FormattingnumericstringsOneofthemostcommonusesofsprintfistoprintintegersintostrings,sospritnfcanreplaceItoainmostcases.Suchas://theinteger123printastringstoredinthes.Sprintf(s,%d,123);//"123"Youcanspec
5、ifythewidth,theinsufficientleftcomplementspace:Sprintf(s,%8d%8d,123,4567);//:"1234567"Ofcourse,itcanalsobeleftaligned:Sprintf(s,%-8d%8d,123,4567);//:"1234567"Youcanalsoprintin16Decimalrange:Sprintf(s,%8x,4567);//lowercase16hex,width8position,rightalignedSprintf(s,%-8X,4568);//uppe
6、rcasehexadecimal16,widthoccupiedthe8position,alignleftThus,astringof16hexadecimalintegerisveryeasytoget,butweareinthe16hexadecimalprintcontent,usuallywantaleftupto0ofthefixedwidthformat,thenhowtodo?It'sverysimple.Justadd0tothenumberthatsaysthewidth.Sprintf(s,%08X,4567);//:"000011D
7、7"Theabove10decimalprintingwith"%d"canalsousethewayof"0"ontheleft.Hereweshouldpayattentiontoasymbolextensionproblem:forexample,ifwewanttoprintashortinteger(short)-1memory16hexadecimalrepresentationontheWin32platform,ashorttypeis2bytes,sowenaturallywanttouse416hexadecimalnumberstop
8、rintit:ShortSi=-1;Sprintf(s,"%04X