Daar is nie 'n binêre bekering specific in glibc normaalweg. Dit is moontlik om persoonlike sukses tipes voeg tot die printf () familie van funksies in glibc. Sien registerprintffunction vir meer inligting. Jy kan 'n persoonlike b omskakeling voeg vir jou eie gebruik, of dit vergemaklik die aansoek-kode om dit beskikbaar te hê. Hier is 'n voorbeeld van hoe om te implementeer 'n persoonlike printf formate in glibc. Ook, wat you39re praat w. r.t. hantering van verskeie resultate agtermekaar is nie reentrancy per se nie, maar eerder net die gevolge van die gebruik wat neerkom op 'n wêreldwye beswaar teen die uitslag in die winkel. Die funksie word nie weer ingeskryf het. In C die behoorlike, of ten minste baie gebruik, idioom vir die hantering van funksies wat hul resultate in 'n globale voorwerp te slaan is om die resultate onmiddellik kopieer oor hulle te verkry. Dit het die groot voordeel dat as net een gevolg word benodig op 'n tyd toe geen bykomende toewysing nodig is. uitvoering maak Greg A. Woods 27 November 12 by 00:51 Hier we39re gaan hê om te verskil. Ek can39t sien hoe die toevoeging van een onopvallende voorverwerker simbool kom oral in die buurt van die skadelike gevolge van die gebruik gevalle erg beperk, maak die koppelvlak fout sensitiewe, bespreking van permanente stoor vir die duur van die program vir 'n tydelike waarde, en die opwekking erger kode op die meeste moderne platforms . â € R .. 27 November 12 by 01:53 Die familie printf () is net in staat om te druk in die basis 8, 10, en 16 direk met behulp van die standaard spesifiseerders. Stel die skep van 'n funksie wat die getal omskakel na 'n string per kodes spesifieke behoeftes. Alle ander antwoorde tot dusver ten minste een van hierdie beperkings. Gebruik statiese geheue vir die terugkeer buffer. Dit beperk die aantal kere wat die funksie kan as 'n argument gebruik word om printf (). Ken geheue wat die roeping kode vir vrye wysers. Vereis dat die roeping kode uitdruklik voorsien 'n geskikte buffer. Bel printf () direk. Dit verplig 'n nuwe funksie vir om fprintf (). sprintf (). vsprintf (). ens Gebruik 'n beperkte reeks heelgetalle. Die volgende het nie een van die bogenoemde beperking. Dit verg C99 of later en gebruik van e. Dit maak gebruik van 'n saamgestelde letterlike om die buffer spasie voorsien. Dit het geen probleme met verskeie oproepe in 'n printf ().Die ostream metodes vir die beheer van uitvoer formaat is verbose en lomp. Sommige programmeerders verkies die meer kompakte ANSI C benadering. In die vorige artikel het ons hoe om 'n lys van en waardes te lees en 'n tafel in 'n goed-gedefinieerde formaat. Hier is hoe om dieselfde ding te doen met die ANSI C printf funksie oproep. Uitvoer van printf gaan na stdout en kan gemeng word met cout. Let daarop dat ons die ANSI C kop stdio. h met printf nodig. Hier is die formaat is wat deur die eerste argument van die printf funksie. Die persent tekens in die formaat string stel die formaat omskakeling spesifikasie. Daar is twee van hulle, een vir elke waarde geskryf. Hulle is geneem ten einde lees van links na regs. Elke produksie waarde moet 'n ooreenstemmende formaat spesifikasie het. Die 7.4 gee 'n veld breedte van 7 en 4 syfers verby die desimale punt. Die f spesifiseer vaste formaat (bv nie wetenskaplike notasie met magte van 10). Weglating van die wydte veld is OK, maar dan moet jy kan nie reël om die getalle. Die breedte veld is eintlik beskou as 'n minimum versoek. As die waarde meer ruimte as wat jy toelaat vereis, sal printf meer ruimte te gryp. Natuurlik, die getalle gewoond line-up, dan, maar dit is veel beter om 'n misleidende afkorting. Anders as formaat omskakeling spesifikasies, enige karakters in die formaat string gekopieer na die uitset soos gegee. In hierdie voorbeeld is die einde van die lyn N is so 'n karakter. Hier is 'n paar wat algemeen gebruik word formaat omskakeling spesifikasies. Die spesifikasie moet saamstem met die numeriese tipe shown. This hoofstuk beskryf die funksies vir die skep van strome en die verrigting van toevoer en afvoer bedrywighede op hulle. Soos bespreek in artikel Input / Output Oorsig. 'n stroom is 'n redelik abstrakte, hoë-vlak konsep wat 'n kommunikasie kanaal na 'n lêer, toestel, of proses. Vir historiese redes, is die tipe van die C data struktuur wat 'n stroom verteenwoordig lêer, eerder as stroom genoem. Aangesien die meeste van die funksies biblioteek hanteer voorwerpe van lêertipe. soms die term lêer wyser word ook gebruik om stroom beteken. Dit lei tot ongelukkige verwarring oor terminologie in baie boeke oor C. Hierdie handleiding is egter versigtig om die lêer terme gebruik en stroom net in die tegniese sin. Die lêertipe word verklaar in die kop lêer stdio. h. Data Tipe: FILE Dit is die tipe data wat gebruik word om stroom voorwerpe. 'N lêer voorwerp hou al van die interne inligting staat oor die verbinding met die gepaardgaande lêer, insluitend dinge soos die lêer posisie aanwyser en buffer inligting. Elke stroom het ook foute en die einde van die lêer status aanwysers wat getoets kan word met die ferror en feof funksies sien afdeling einde van die lêer en foute. Lêer voorwerpe toegeken word en intern deur die toevoer / afvoer biblioteek funksies. Moenie probeer om jou eie oogmerke van tipe lêer laat die biblioteek te doen nie. Jou programme moet hanteer net met verwysings na hierdie voorwerpe (dit wil sê, lêer waardes) eerder as die voorwerpe self. Wanneer die hooffunksie van jou program is opgeroep, dit het reeds drie gedefinieerde strome oop en beskikbaar vir gebruik. Hierdie verteenwoordig die standaard inset en uitset kanale wat ingestel is vir die proses. Hierdie strome word verklaar in die kop lêer stdio. h. Veranderlike: FILE stdin Die standaard inset stroom, wat is die normale bron van insette vir die program. Veranderlike: FILE stdout Die standaard uitset stroom, wat gebruik word vir 'n normale uitset van die program. Veranderlike: FILE stderr Die standaardfout stroom, wat gebruik word vir foutboodskappe en diagnoses wat uitgereik is deur die program. In die GNU stelsel, kan jy spesifiseer watter lêers of prosesse ooreen met dié strome met behulp van die pyp en herleiding fasiliteite wat deur die dop. (Die primitiewes doppe gebruik om te implementeer hierdie fasiliteite word beskryf in artikel File System Interface.) Die meeste ander bedryfstelsels bied soortgelyke meganismes, maar die besonderhede van hoe om dit te gebruik kan wissel. In die GNU C biblioteek, stdin. stdout. en stderr is normaal veranderlikes wat jy kan stel, net soos enige ander. Byvoorbeeld, om die standaard uitset na 'n lêer te lei, kan jy: Let egter daarop dat in ander stelsels stdin. stdout. en stderr is makros wat jy nie in die normale manier kan wys. Maar jy kan gebruik freopen om die uitwerking van die sluiting van een en heropening dit te kry. Sien artikel Opening strome. Opening van 'n lêer met die fopen funksie skep 'n nuwe stroom en stel 'n verband tussen die stroom en 'n lêer. Dit kan behels die skep van 'n nuwe lêer. Alles in hierdie artikel beskryf word verklaar in die kop lêer stdio. h. Funksie: lêer fopen (const char lêernaam const char OpenType.) Die fopen funksie maak 'n stroom vir I / O die lêer lêernaam. en gee 'n wyser na die stroom. Die OpenType argument is 'n string wat beheer hoe die lêer oopgemaak en spesifiseer eienskappe van die gevolglike stroom. Dit moet begin met een van die volgende rye van karakters: r Open 'n bestaande lêer vir net lees. w Open die lêer vir net skryf. As die lêer bestaan reeds, is dit afgekap tot nul lengte. Anders 'n nuwe lêer geskep word. 'n 'n lêer vir aanhegnavraag toegang dit is, skriftelik aan die einde van slegs lêer oop te maak. As die lêer bestaan reeds, sy aanvanklike inhoud onveranderd en uitset na die stroom is aangeheg aan die einde van die lêer. Andersins, is 'n nuwe, leë lêer geskep. R Open 'n bestaande lêer vir beide lees en skryf. Die aanvanklike inhoud van die lêer is onveranderd en die aanvanklike lêer posisie is aan die begin van die lêer. w Open 'n lêer vir beide lees en skryf. As die lêer bestaan reeds, is dit afgekap tot nul lengte. Andersins, is 'n nuwe lêer geskep. 'n Oop of skep lêer vir beide lees en aanbring. As die lêer bestaan, sy aanvanklike inhoud onveranderd. Andersins, is 'n nuwe lêer geskep. Die aanvanklike lêer posisie om te lees is aan die begin van die lêer, maar uitset is altyd aangeheg aan die einde van die lêer. Soos jy kan sien, vra 'n stroom wat beide toevoer en afvoer kan doen. Die ANSI standaard sê dat by die gebruik van so 'n stroom, moet jy 'n beroep fflush (sien afdeling Stroom Buffering) of 'n lêer posisionering funksie soos fseek (sien afdeling Lêer Positioning) wanneer jy uit die lees te skryf of andersom. Anders, interne buffers kan nie behoorlik leeggemaak. Die GNU C biblioteek beskik nie oor hierdie beperking kan jy arbitrêre lees en skryf bedrywighede te doen op 'n stroom in watter volgorde. Die GNU C biblioteek definieer een addisionele karakter vir gebruik in OpenType. die karakter x dring aan op die skep van 'n nuwe lêer - as 'n lêer lêernaam bestaan reeds, fopen versuim eerder as om dit oop te. As jy x gebruik kan word gewaarborg dat jy 'n bestaande lêer nie sal afranselen. Dit is gelykstaande aan die opsie OEXCL na die oop funksie (sien afdeling Opening en sluiting lêers). Die karakter b in OpenType het 'n standaard wat beteken dat dit vra 'n binêre stroom eerder as 'n teks stroom. Maar dit maak geen verskil in POSIX stelsels (insluitend die GNU stelsel). As albei en b gespesifiseer, kan dit in óf orde. Sien artikel teks en binêre strome. Enige ander karakters in OpenType is eenvoudig geïgnoreer. Hulle het dalk sinvol met ander stelsels. As die oop versuim, fopen gee 'n nul wyser. Jy kan verskeie strome (of lêer beskrywers) verwys na dieselfde lêer oop op dieselfde tyd te hê. As jy net insette te doen, werk dit reguit, maar jy moet versigtig wees as daar uitset strome ingesluit. Sien artikel Gevare van Meng Streams en beskrywers. Dit is ewe waar of die strome in 'n program (nie gewone) of in 'n paar programme (wat maklik kan gebeur). Dit kan voordelig wees om die lêer sluit fasiliteite gebruik om gelyktydige toegang te voorkom. Sien artikel lêer Slotte. Makro: int FOPENMAX Die waarde van hierdie makro 'n heelgetal konstante uitdrukking dat die minimum aantal strome wat die implementering waarborge gelyktydig oop kan wees verteenwoordig. Jy kan in staat wees om meer oop as dit baie strome, maar dit is nie gewaarborg nie. Die waarde van hierdie konstante is minstens agt, wat die drie standaard strome stdin sluit. stdout. en stderr. In POSIX.1 stelsels hierdie waarde word bepaal deur die OPENMAX parameter Sien artikel Algemene Kapasiteit Limits. In BSD en GNU, is dit beheer word deur die RLIMITNOFILE hulpbron beperking Sien artikel beperkende hulpbron gebruik. Funksie: (.. Const char lêernaam const char OpenType FILE stroom) FILE freopen Hierdie funksie is soos 'n kombinasie van fclose en fopen. Dit sluit eers die om deur stroom verwys stroom. ignoreer enige foute wat bespeur in die proses. (Omdat foute geïgnoreer, moet jy nie gebruik freopen op 'n uitset stroom as jy eintlik 'n uitset met behulp van die stroom gedoen het.) Dan die lêer met die naam deur die lêernaam word geopen met af OpenType as vir fopen. en wat verband hou met dieselfde stroom voorwerp stroom. As die operasie nie, word 'n nul wyser anders teruggekeer, freopen opbrengste stroom. freopen is tradisioneel gebruik om 'n standaard stroom in verbinding soos stdin met 'n lêer van jou eie keuse. Dit is nuttig in programme waarin gebruik van 'n standaard stroom vir sekere doeleindes is hard-gekodeerde. In die GNU C biblioteek, kan jy net sluit die standaard strome en oop nuwes met fopen. Maar ander stelsels nie oor hierdie vermoë, sodat die gebruik van freopen is meer draagbaar. Wanneer 'n stroom is gesluit met fclose. die verband tussen die stroom en die lêer is gekanselleer. Nadat jy 'n stroom het gesluit, kan jy enige bykomende operasies nie uit te voer op dit. Funksie: int fclose (lêer stroom) Hierdie funksie veroorsaak stroom gesluit en die verbinding met die ooreenstemmende lêer te verbreek. Enige gebuffer uitset is geskryf en enige gebuffer insette is weggegooi. Die fclose funksie gee terug 'n waarde van 0 as die lêer suksesvol gesluit, en EOF as 'n fout is opgespoor. Dit is belangrik om te kyk vir foute wanneer jy fclose bel om 'n uitset stroom sluit, want werklik, alledaagse foute kan opgespoor word in hierdie tyd. Byvoorbeeld, wanneer fclose skryf die oorblywende gebuffer uitset, is dit dalk 'n fout kry, want die skyf is vol. Selfs as jy weet die buffer leeg is, kan foute steeds voorkom wanneer 'n lêer te sluit as jy 'NFS. Die funksie fclose verklaar in stdio. h. As die hooffunksie om jou program opbrengste, of as jy die uitgang funksie noem (sien afdeling Normale Beëindiging), is almal oop strome outomaties behoorlik gesluit. As jou program beëindig op enige ander wyse, soos deur die roeping van die Staak funksie (sien afdeling Staak 'n Program) of van 'n noodlottige sein (sien afdeling Signal Hantering), oop strome kan nie behoorlik toegemaak. Gebuffer uitset kan nie gespoel en lêers kan onvolledig wees. Vir meer inligting oor buffer van strome, sien afdeling Stroom buffer. Hierdie afdeling beskryf funksies vir die uitvoering van karakter - en aanlyn-georiënteerde uitset. Hierdie funksies word verklaar in die kop lêer stdio. h. Funksie: int fputc (Int. C FILE stroom) Die fputc funksie vat die karakter c te unsigned char tik. en skryf dit op die stroom stroom. EOF is teruggestuur as 'n skryf fout begaan anders die karakter c teruggestuur. Funksie: int putc (Int. C FILE stroom) Dit is net soos fputc. behalwe dat die meeste stelsels te implementeer as 'n makro, maak dit vinniger. Een gevolg is dat dit die stroom argument meer as een keer kan evalueer. putc is gewoonlik die beste funksie te gebruik vir die skryf van 'n enkele karakter. Funksie: int putchar (int c) Die putchar funksie is soortgelyk aan putc met stdout as die waarde van die stroom argument. Funksie: int fputs (. Const char s lêer stroom) Die funksie fputs skryf die string s om die stroom stroom. Die beëindiging van nul karakter is nie geskryf. Hierdie funksie is nie 'n NEWLINE karakter voeg, óf. Dit uitgange net die karakters in die string. Hierdie funksie gee terug EOF as 'n skryf fout begaan, en andersins 'n nie-negatiewe waarde. uitgange die teks Is jy honger gevolg deur 'n nuwe reël. Funksie: int wan (const char s) Die wan funksie skryf die string s om die stroom stdout gevolg deur 'n nuwe reël. Die beëindiging van nul karakter van die string is nie geskryf. plaas is die mees geskikte funksie vir die druk van eenvoudige boodskappe. Byvoorbeeld: Function: int putw (Int. W FILE stroom) Hierdie funksie skryf die woord w (dit wil sê, 'n int) te stroom. Dit is bedoel vir verenigbaarheid met SVID, maar ons beveel aan dat jy fwrite gebruik in plaas (sien afdeling Blok Input / Output). Hierdie afdeling beskryf funksies vir die uitvoering van karakter - en aanlyn-georiënteerde insette. Hierdie funksies word verklaar in die kop lêer stdio. h. Funksie: int fgetc (lêer stroom) Hierdie funksie lees die volgende karakter as 'n unsigned char van die stroom stroom en die waarde daarvan terug, omgeskakel word na 'n int. As 'n einde-van-lêer toestand of lees fout begaan word, is EOF plaas teruggekeer. Funksie: int AOOS (lêer stroom) Dit is net soos fgetc. behalwe dat dit toelaatbaar (en tipies) daarvoor as 'n makro wat die stroom argument meer as een keer evalueer geïmplementeer moet word. AOOS is dikwels hoogs new, so dit is gewoonlik die beste funksie te gebruik om 'n enkele karakter te lees. Funksie: int getchar (void) Die getchar funksie is soortgelyk aan AOOS met stdin as die waarde van die stroom argument. Hier is 'n voorbeeld van 'n funksie wat insette doen met behulp van fgetc. Dit sal werk net so goed gebruik van AOOS plaas, of die gebruik van getchar () in plaas van fgetc (stdin). Funksie: int getw (lêer stroom) Hierdie funksie lees 'n woord (dit wil sê, 'n int) van stroom. Die voorwaarde vir verenigbaarheid met SVID. Ons raai u aan fread gebruik in plaas (sien afdeling Blok Input / Output). Aangesien baie programme interpreteer insette op grond van lyne, sy gerieflik om funksies 'n reël van die teks lees van 'n stroom het. Standard C het funksies om dit te doen, maar hulle Arent baie veilig: nul karakters en selfs (vir kry) lang rye kan hulle verwar. So die GNU biblioteek verskaf die standaard getline funksie wat maak dit maklik om lyne betroubaar te lees. Nog 'n GNU uitbreiding, getdelim. veralgemeen getline. Dit lui 'n afgebakende rekord, gedefinieer as alles wat deur die volgende voorkoms van 'n bepaalde delimiter karakter. Al hierdie funksies word verklaar in stdio. h. Funksie: ssizet getline Hierdie funksie lees 'n hele lyn van stroom (char lineptr sizet N lêer stroom..). stoor die teks (insluitend die NEWLINE en 'n beëindiging van nul karakter) in 'n buffer en die stoor van die buffer-posadres in lineptr. Voordat hy getline. jy moet plaas in lineptr die adres van 'n buffer N grepe lank, met malloc toegeken. As hierdie buffer is lank genoeg om die lyn, getline winkels die lyn te hou in hierdie buffer. Anders, getline maak die buffer groter gebruik van realloc. stoor die nuwe buffer adres terug in lineptr en die verhoogde grootte terug in n. Sien artikel Unconstrained Toekenning. As jy lineptr stel om 'n nul pointer, en N nul, voordat die oproep, dan getline ken die aanvanklike buffer vir jou deur te bel malloc. In beide gevalle, wanneer getline opbrengste, lineptr is 'n kar wat daarop dui dat die teks van die lyn. Wanneer getline suksesvol is, dit gee die aantal karakters te lees (insluitend die NEWLINE, maar nie insluitend die beëindiging van nul). Hierdie waarde kan jy nul karakters wat deel is van die lyn van die nul karakter ingevoeg as 'n Terminator onderskei. Hierdie funksie is 'n GNU uitbreiding, maar dit is die aanbevole manier om lyne van 'n stroom te lees. Die alternatiewe standaard funksies is onbetroubaar. As 'n fout begaan of einde van lêer bereik, getline opbrengste -1. Funksie: ssizet getdelim Hierdie funksie is soos getline behalwe dat die karakter wat vertel dit aanhou met voorlesing ophou nie noodwendig NEWLINE (char lineptr sizet N int delimiter FILE stroom...). Die argument delimiter spesifiseer die delimiter karakter getdelim hou lees totdat dit dat karakter (of einde van lêer) sien. Die teks is gestoor in lineptr. insluitend die delimiter karakter en 'n tydelike nul. Soos getline. getdelim maak lineptr groter as dit isnt groot genoeg. getline is in werklikheid in terme van getdelim geïmplementeer. net soos hierdie: Function: char fgets Die fgets funksie lees karakters uit die stroom stroom tot en met 'n nuwe reël karakter en stoor dit in die string s (char s int telling FILE stroom..). toevoeging van 'n nul karakter aan die einde van die tou te merk. Jy moet telling karakters waarde van ruimte in te lewer. maar die aantal karakters te lees is by die meeste tel - 1. Die ekstra karakter ruimte word gebruik om die nul karakter aan die einde van die string te hou. As die stelsel is reeds aan die einde van lêer wanneer jy bel fgets. dan is die inhoud van die skikking is onveranderd en 'n nul wyser is terug. 'N nul wyser is ook teruggestuur as 'n lees fout begaan. Andersins, die terugkeer waarde is die wyser se. Waarskuwing: As die insette data het 'n nul karakter, kan nie vir jou sê. So moenie gebruik fgets tensy jy weet wat die data kan 'n nul nie bevat. Moenie dit gebruik om lêers geredigeer deur die gebruiker, want as die gebruiker 'n nul karakter voeg, moet jy óf behoorlik hanteer of 'n duidelike fout boodskap te druk lees. Ons beveel die gebruik van getline in plaas van fgets. Afgekeur funksie: char kry (char s) Die funksie kry lees karakters uit die stroom stdin tot die volgende NEWLINE karakter, en stoor dit in die string s. Die NEWLINE karakter weggegooi (let daarop dat hierdie verskil van die gedrag van fgets. Wat afskrifte van die NEWLINE karakter in die string). As kry ontmoetings 'n lees fout of einde van die lêer, dit gee 'n nul wyser anders dit terug te. Waarskuwing: Die kry funksie is baie gevaarlik, want dit bied geen beskerming teen oorloop die string s. Die GNU biblioteek sluit dit slegs vir verenigbaarheid. Jy moet altyd gebruik fgets of getline plaas. Om jou te herinner aan hierdie, sal die linkerkant (as jy dit gebruik GNU ld) 'n waarskuwing uitreik wanneer jy gebruik kry. In ontleder programme is dit dikwels nuttig om die volgende karakter in die inset stroom te ondersoek sonder dit te verwyder uit die stroom. Dit staan bekend as loer voor op die insette omdat jou program kry 'n blik op die insette sal dit volgende te lees. Die gebruik van stroom I / O, jy kan voor loer by insette deur die eerste om dit te lees en dan unreading dit (ook bekend as stoot dit terug op die stroom). Unreading n karakter maak dit beskikbaar na insette weer uit die stroom deur die volgende oproep tot fgetc of ander insette funksie op daardie stroom. Hier is 'n geïllustreerde verduideliking van unreading. Veronderstel jy het 'n stroom lees van 'n lêer wat net ses karakters, die letters foobar bevat. Veronderstel jy het drie karakters tot dusver gelees. Die situasie lyk soos volg: sodat die volgende insette karakter sal b. As in plaas van lees b jy ongelees die brief o. jy kry 'n situasie soos hierdie, sodat die volgende insette karakters o en b sal wees. As jy ongelees 9 in plaas van o. jy hierdie situasie, sodat die volgende insette karakters 9 en b sal wees. Die funksie van 'n karakter ongelees is ungetc genoem. want dit keer die optrede van AOOS. Funksie: int ungetc (Int. C FILE stroom) Die ungetc funksie stoot terug die karakter c op die insette stroom stroom. So die volgende insette van stroom sal c lees voordat enigiets anders. As c is EOF. ungetc doen niks en net terug EOF. Dit laat jou bel ungetc met die terugkeer waarde van AOOS sonder om te kyk vir 'n fout van AOOS. Die karakter wat jy stoot terug die geval moet dieselfde wees as die laaste karakter wat eintlik gelees uit die stroom wees. Trouens, dit isnt nodig om enige karakters uit die stroom eintlik lees voordat hulle unreading met ungetc. Maar dit is 'n vreemde manier om 'n program gewoonlik ungetc word slegs gebruik om 'n karakter wat net gelees van dieselfde stroom ongelees skryf. Die GNU C biblioteek ondersteun net een karakter van agterstoot - met ander woorde, beteken dit nie werk om twee keer te bel ungetc sonder om insette van die twee. Ander stelsels kan laat druk terug verskeie karakters dan lees van die stroom die karakters in die omgekeerde volgorde wat hulle gestoot gekry. Stoot terug karakters nie die geval verander die lêer net die interne buffer vir die stroom is wat geraak word. As 'n lêer posisionering funksie (soos fseek of rewind sien afdeling Lêer Positioning) genoem word, enige hangende gestoot terug karakters word weggegooi. Unreading 'n karakter op 'n stroom wat aan die einde van lêer goedkeuring van die einde-van-lêer aanwyser vir die stroom, want dit maak die karakter van insette beskikbaar. Nadat jy daardie karakter te lees, probeer om weer te lees sal einde van lêer teëkom. Hier is 'n voorbeeld wat die gebruik van AOOS en ungetc om oor te slaan witspasie karakters. Wanneer hierdie funksie 'n nie-spasie karakter bereik, dit unreads dat karakter weer gesien te word op die volgende lees werking op die stroom. Die in hierdie afdeling (printf en verwante funksies) beskryf funksies bied 'n maklike manier om geformateer uitset te voer. Jy noem printf met 'n formaat string of sjabloon string wat spesifiseer hoe om die waardes van die oorblywende argumente formaat. Tensy jou program is 'n filter wat spesifiek lyn - of-karakter georiënteerde verwerking, met behulp van printf of een van die ander verwante funksies in hierdie artikel beskryf verrig is gewoonlik die maklikste en mees bondige manier om uitset te voer. Hierdie funksies is veral nuttig vir die druk van foutboodskappe, tafels van data, en dies meer. Die printf funksie kan gebruik word om 'n aantal argumente te druk. Die sjabloon string argument wat jy verskaf in 'n oproep verskaf inligting nie net oor die aantal bykomende argumente nie, maar ook oor hul tipes en watter styl moet gebruik word vir die druk. Gewone karakters in die sjabloon string is eenvoudig geskryf om die uitset stroom as-is, terwyl sukses spesifikasies wat deur 'n karakter in die sjabloon veroorsaak daaropvolgende argumente om geformateer en geskryf om die uitset stroom. Byvoorbeeld, produseer uitset soos hierdie voorbeeld toon die gebruik van die d omskakeling na spesifiseer dat 'n int argument moet gedruk in desimale notasie, die s omskakeling na druk van 'n string argument spesifiseer, en die omskakeling na 'n letterlike karakter te druk. Daar is ook doelskoppe vir die druk van 'n heelgetal argument as 'n ongetekende waarde in oktale, desimale, of hexadecimale radix (o. U. Of x. Onderskeidelik) of as 'n karakter waarde (c). Swaai-punt nommers gedruk kan word in gewone, vaste punt notasie gebruik te maak van die f omskakeling of in eksponensiële notasie gebruik te maak van die e omskakeling. Die g omskakeling gebruik óf e of f-formaat, afhangende van wat is meer gepas vir die grootte van die spesifieke nommer. Jy kan beheer opmaak meer presies deur die skryf van wysigers tussen die en die karakter wat aandui watter sukses toe te pas. Hierdie verander effens die gewone gedrag van die omskakeling. Byvoorbeeld, die meeste sukses spesifikasies toelaat dat jy 'n minimum veld breedte en 'n Vlag wat aandui of jy wil hê dat die resultaat linker - of regter geregverdig in die veld spesifiseer. Die spesifieke vlae en wysigers wat toegelaat en die interpretasie daarvan is afhanklik van die spesifieke sukses. Theyre al beskryf in meer detail in die volgende afdelings. Moenie bekommerd wees as dit alles lyk buitensporig ingewikkeld op die eerste jy kan byna altyd kry redelike vrye-formaat uitset sonder die gebruik van enige van die wysigers glad. Die wysigers word meestal gebruik om die uitset te kyk mooier in tabelle. Hierdie afdeling verskaf inligting oor die presiese sintaksis van sukses spesifikasies wat verskyn in 'n printf sjabloon string. Karakters in die sjabloon string wat nie deel van 'n doelskop spesifikasie gedruk as-is om die uitset stroom. Multibyte karakter rye (sien afdeling uitgebreide karakters) word toegelaat in 'n sjabloon string. Die omskakeling spesifikasies in 'n printf sjabloon string het die algemene vorm: Byvoorbeeld, in die omskakeling specific -10.8ld. die - is 'n vlag, 10 spesifiseer die breedte veld, die akkuraatheid is 8. die letter L is 'n tipe wysiger, en d spesifiseer die omskakeling styl. (Hierdie spesifieke tipe specific sê vir 'n lang int argument in desimale notasie te druk, met 'n minimum van 8 syfers links geregverdig in 'n veld ten minste 10 karakters breed.) In meer besonderhede, uitset omskakeling spesifikasies bestaan uit 'n aanvanklike karakter wat in volgorde deur: Zero of meer vlag karakters wat die normale gedrag van die omskakeling spesifikasie verander. 'N opsionele desimale heelgetal spesifiseer die minimum gebied breedte. As die normale omskakeling minder karakters as dit produseer, is die veld opgestopte met spasies na die gespesifiseerde wydte. Dit is 'n minimum waarde as die normale omskakeling produseer meer karakters as dit nie, is die veld nie afgesny. Gewoonlik, die uitset is reg-geregverdig in die veld. Jy kan ook 'n stuk grond breedte van spesifiseer. Dit beteken dat die volgende argument in die argument lys (voor die werklike waarde wat gedruk) word gebruik as die wydte veld. Die waarde moet 'n int wees. As die waarde negatief is, beteken dit dat die stel - vlag (sien onder) en om die absolute waarde as die wydte veld gebruik. 'N opsionele presisie te spesifiseer die aantal syfers wat geskryf moet word vir die numeriese doelskoppe. As die akkuraatheid gespesifiseer, dit bestaan uit 'n punt (.) Opsioneel gevolg deur 'n desimale integer (wat standaard aan nul as uitgelaat). Jy kan ook 'n akkuraatheid van spesifiseer. Dit beteken dat die volgende argument in die argument lys (voor die werklike waarde wat gedruk) word gebruik as die akkuraatheid. Die waarde moet 'n int wees. en is geïgnoreer as dit negatief is. As jy spesifiseer vir beide die breedte en presisie veld, die breedte veld argument voorafgaan die akkuraatheid argument. Ander C biblioteek weergawes kan nie hierdie sintaksis erken. 'N opsionele tipe wysiger karakter. wat gebruik word om die tipe data van die ooreenstemmende argument spesifiseer indien dit verskil van die standaard tipe. (Byvoorbeeld, die heelgetal doelskoppe aanvaar 'n tipe int. Maar jy kan h spesifiseer. L. Of L vir ander vorme heelgetal.) 'N karakter wat die omskakeling spesifiseer wat toegepas moet word. Die presiese opsies wat toegelaat word en hoe dit geïnterpreteer wissel tussen die verskillende omskakelingsmerkers spesifiseer. Sien die beskrywings van die individu doelskoppe vir inligting oor die spesifieke opsies wat hulle gebruik. Met die - Wformat opsie, die GNU C samesteller tjeks oproepe na printf en verwante funksies. Dit ondersoek die formaat string en het bevestig dat die korrekte aantal en tipes argumente verskaf. Daar is ook 'n GNU C sintaksis om die samesteller wat 'n funksie wat jy skryf maak gebruik van 'printf - styl formaat string vertel. Sien artikel verkondig eienskappe van funksies in gebruik van GNU CC. vir meer inligting. Hier is 'n tabel op te som wat al die verskillende doelskoppe doen: D. Ek Druk 'n heelgetal as 'n getekende desimaal nommer. Sien artikel Integer Doelskoppe. vir meer inligting. d en ek is sinoniem vir uitvoer, maar is anders wanneer dit gebruik word met scanf vir insette (sien afdeling Table of Inset Doelskoppe). o Druk 'n heelgetal as 'n ongetekende oktale getal. Sien artikel Integer Doelskoppe. vir meer inligting. u Druk 'n heelgetal as 'n ongetekende desimaal nommer. Sien artikel Integer Doelskoppe. vir meer inligting. x. X Druk 'n heelgetal as 'n ongetekende heksadesimale getal. x gebruik kleinletters en X gebruik hoofletters. Sien artikel Integer Doelskoppe. vir meer inligting. f Druk 'n swaai-punt nommer in normale (vaste punt) notasie. Sien artikel swaai komma Doelskoppe. vir meer inligting. e. E Druk 'n swaai-punt nommer in eksponensiële notasie. e gebruik kleinletters en E gebruik hoofletters. Sien artikel swaai komma Doelskoppe. vir meer inligting. g. G Druk 'n swaai-punt nommer in óf normale of eksponensiële notasie, wat ook al meer geskik is vir die grootte is. g gebruik kleinletters en G gebruik hoofletters. Sien artikel swaai komma Doelskoppe. vir meer inligting. c Druk 'n enkele karakter. Sien artikel Ander Uitgawe Doelskoppe. s Druk 'n string. Sien artikel Ander Uitgawe Doelskoppe. p Druk die waarde van 'n wyser. Sien artikel Ander Uitgawe Doelskoppe. N Kry die aantal karakters dusver gedruk. Sien artikel Ander Uitgawe Doelskoppe. Let daarop dat hierdie omskakeling spesifikasie vervaardig nooit enige uitset. m Druk die string wat ooreenstem met die waarde van Errno. (Hierdie is 'n GNU uitbreiding.) Sien artikel Ander Uitgawe Doelskoppe. Druk 'n letterlike karakter. Sien artikel Ander Uitgawe Doelskoppe. As die sintaksis van 'n doelskop spesifikasie is ongeldig, sal onvoorspelbare dinge gebeur, sodat dit nie doen dit. As daar genoeg funksie argumente aan waardes verskaf vir alle sukses spesifikasies in die sjabloon string die Arent, of indien die argumente is nie van die korrekte tipes, die resultate is onvoorspelbaar. As jy meer argumente verskaf as omskakeling spesifikasies, is die ekstra argument waardes eenvoudig geïgnoreer dit is soms nuttig. Hierdie afdeling beskryf die opsies vir die d. Ek. o. u. x. en X omskakeling spesifikasies. Die omskakeling druk heelgetalle in verskillende formate. Die d en ek omskakeling spesifikasies beide druk 'n int argument as 'n getekende desimale getal terwyl o. u. en x druk die argument as 'n ongetekende oktale, desimale, of hexadecimale getal (onderskeidelik). Die X omskakeling spesifikasie is net soos x behalwe dat dit gebruik maak van die karakters ABCDEF as syfers in plaas van ABCDEF. Ek. soos toepaslik. soos toepaslik. Hier is 'n voorbeeld. e. E. g. e. onder. x. e. f. g. u. f. g. . Ten slotte, by 14:00 op Woensdag. die jag begin en mense begin hardloop om die gebou op soek na die fiets. Dit is redelik vinnig gevind word deur die gelukkige Tony GAMBINO. Dankie, Brilliant, vir die pragtige fiets, en baie geluk Tony Verlede week Kreatiewe Direkteur, Alvaro Sotomayor gevier sy 20ste herdenking van die werk by die Wêreldbeker Amsterdam. Beskryf as 'n eenman-fees, 'n loop anti-depressant en 'n man wat praat in emosies, lvaro is ongetwyfeld die siel van die agentskap. Om sy verjaardag te vier ons gooi hom 'n yslike verrassing party, wat begin het in die tuin, het voortgegaan op ons agentskap boot en het geëindig met dans die nag weg op 'n tropiese tema partytjie by Amsterdams Pllek. Daar was Pia coladas, reuse opblaas piesangs en verrassing familie en vriende van oor die hele wêreld. Alle om ons geliefde Alvaro eer. Maar dis nie al nie. Oor sy twintig jaar Alvaro beduidende impak binne die agentskap en op Amsterdams wyer kreatiewe toneel, wat hom stewig gevestig as 'n pion en ambassadeur van die stad se kreatiewe bedryf gehad het. Stigterslid WKS broeikas program Die Kennedys, wat oorslaan na die eerste nie-Nederlandse gebore advertensies kreatief te wees ingelyf in ADCNs gesogte Hall of Honneurs en met behulp van sy kuns te help verbied stier in Spanje, is net 'n paar van sy vele prestasies. So genomineer ons hom vir die Andreas-toekenning 'n amptelike eer deur die Amsterdam Stadsraad toegeken aan individue vir uitsonderlike prestasies op die gebied van sport, kuns, politiek, media of onderwys in die stad van Amsterdam met gedemonstreer invloed buite die stad en nasionale grense. In 'n laaste verrassing, is Alvaro aangebied met die Andreas medalje by Pllek deur Raadsheer Amsterdam Stadsraad, Pieter Litjens. Sodra hy besef die toekenning was vir die regte en Pieter was nie 'n stripper Alvaro het hierdie te sê: Dit verneder my amptelik erken word met hierdie toekenning en vir die lewe van my daaglikse leuse: Leef deur die liefde. Liefde verander 'n aards dag in 'n dag die moeite werd om te lewe vir. Ek wil my familie en my vriende bedank vir my verbasing 20ste herdenking party en vir die rolle omkeer vir 'n dag. Ek het gevoel die liefde Wil jy meer uit Alvaro Hieronder is 'n uittreksel uit die e-pos stuur hy om die kantoor op sy Amsterversary en voordat hy het geweet wat in die winkel vir hom later in die dag Dit was September 1995, toe ek gevlieg vanaf die lughawe van Maui , om LAX en daarvandaan na Amsterdam om 'n onderhoud by 'n Amerikaanse begin agentskap bekendstelling Nike om die Europese vasteland. As dit was my eerste amptelike werksonderhoud Ek dra my super groen fluweel drie stuk pak en 'n bruin vlieg so diep as Jay-Z. Ek het by die sonderlinge stad van Amsterdam op een van die mees heerlike somer sonnige dae. Dit was 28 grade buite so miskien fluweel wasnt die beste keuse van klerekas. Maar my ander opsie was 'n paar Kaliforniese boulwerk drag so ek het vir die veilige keuse. Twintig jaar later, vandag, die son nog skyn en my lewe is amazing. Om by 'n agentskap waar die leuse is loop dom alledaagse jy kan dink ek voel by die huis. En ek doen dit nog steeds, elke dag. Ek wandel in dom en ek nog steeds verlief op hierdie plek en almal daarin. Ek het betrekking op Dori in Finding Nemo of goudvis. Ek gaan in die rondte hierdie plek denke is 'n oseaan. Ek is verbaas hoe min dit verander. En hoe ons tradisies voortduur. Maar klink 'n paar dinge verander het ons het 'n boot en 'n kroeg en tafeltennis toernooie Hierdie plek is ongelooflik. Hierdie plek bring regtig die beste in ons. Ek is opgewonde om dit weer te skryf in 2035. Ek dink ons kan maak mense glo daar is hoop in die wêreld en oortuig hulle met ons glimlagte. Hier is die volgende 20 Alvaro Fotos deur Stephania Karathanasi en sien meer HIER (Dan Wieden, mede-stigter van WiedenKennedy) Op Donderdag 24 September WiedenKennedy, saam met 'n handvol van die ander plaaslike borge, gasheer vir 'n 3 mini-con in Portland, Oregon . Die dag lange gebeurtenis bestaan uit keynotes, panele, netwerk, 'n joga-sessie, en natuurlik, cocktails. Klik hier vir 'n meer gedetailleerde kyk na die line-up van fantastiese, inspirerende sprekers en deelnemers. Meron Medhanie, WK strateeg, besin oor die dag. Hulle sien my. 8211 Jamie Curl vertrou jou reis, individualiteit en jou geniale, as Intisar Abioto kragtig gesê, is 'n bietjie makliker om te doen wanneer jy gesien, gehoor en verstaan word. Maar wanneer mense jou geluk te erken, in plaas van jou geniale, dit heeltemal uitwis jou talent en harde werk, maak jy voel soos 'n ontvanger van sukses in plaas van 'n skepper. (Sarah Shapiro, Filmmaker, Direkteur en Skepper van Lifetime8217s onwerklik) Sarah Shapiro het dit gedeel deur krag en passie as sy op 'n baie temas gedek by die eerste 3 Mini-konferensie in Portland getref. Die eerste wese, nooit onderskat die krag wat een persoon het 'n verandering te maak. Of as Kat Gordon gesê 8220If iets is gebreek in die wêreld, kan jy baie goed wees om die persoon om dit op te los. En dis wat sy het om te doen. Kat Gordon stigter van die 3-konferensie, tot stigting van 'n gemeenskap van ongelooflike vroue en manbassadors in 2012, na die leer dat persentasie verteenwoordig die aantal vroulike kreatiewe direkteure in ons bedryf. Sedert die organisasie vier jaar gelede van stapel gestuur is, het die aantal vroulike kreatiewe direkteure het van 3 tot 11. Maar dit was duidelik dwarsdeur die dag wat nog Theres so meer werk gedoen moet word. As Chelsea Vandiver gesê beste, 8220The stryd is die hantering van sy regte. Probeer oor die schattigheid versperring te kry ernstig opgeneem te word, en hierdie idee van matrydom vir die werk, tesame met 'n uiterste skuld vir nie 8220being enough8221 vir jou werk, gesin, en jouself daartoe gelei dat talle gesprekke van hoe jy bly in dit toe dit voel asof alles is gestapel teen. Die antwoord: As jy voel soos sy wat jy hoef te doen, is dit jou passie, dan is jy kan nie opgee nie. Dit is die oomblik wanneer jy laat gaan van een fantasie en leun na die een jy bedoel vir, dat deurbraak gebeur. En regtig, dis die ruimte wat ons gespeel het in die hele dag. (Intisar Abioto, fotograaf, danser, Skrywer, Explorer, The Black Portlanders) Ons het geluister na 'n kragtige stories oor wat mense skep en hoe mense verander die spel. Vroue soos Mira Kaddoura en Sarah Shapiro wat opsetlike in wie hulle in diens te neem, in plaas van die huur van die ou wat lyk soos die laaste man wat ons gehuur het nie. Dapper vroue wat ons uitgedaag om te praat wanneer iemand beskryf 'n vrou as wishy slap of emosionele, en in plaas sê dinge soos 8220hmm sy eintlik dink aan haar voete en is nogal passionate.8221 (DeAngelo Raines, mede-stigter Art Director van Diens en Charity Stratos, uitvoerende hoof / stigter van Diens) soveel as wat ons al floreer in 'n ondersteunende omgewing, Tig Notaro herinner ons dat die laaste ding wat jy wil hê, is 'n veilige omgewing. Om in 'n 100 koester omgewing, jy gaan nie regtig groei. So hoe kan ons 'n balans Im nie seker. Ons kan begin met die skep van 'n ruimte waar almal kan kom deel sy of haar perspektief. En met inagneming van wat ongemaklikheid, as Tig so grasieus doen in haar opstaan. Erken dat 8220they dont get hierdie, kan bespreek hierdie en met vertroue dat ons deur moeilike gesprekke kan kry. Of as Charity Stratos gedeel, wat okay met 8220healthy konflik nuwe gemeenskaplike grond te vind. Dan Wieden bygevoeg is ons meer kragtige wanneer uiteenlopend. Die beste manier om 'n probleem op te los is wanneer daar verskeie perspektiewe in die kamer. Diversiteit is die beste ding wat kan gebeur met kreatiwiteit. Om dit in perspektief te stel, Kat Gordon het die gehoor gevra: Ons sien 3000 advertensies per dag wat vorm die manier waarop ons sien dinge in alle fasette van die lewe. Wil ons dit uit een perspektief te kom of te doen wil hê ons dit moet wees verteenwoordiger van Amerika Wêreldbeker is 'n vennootskap met die 3-konferensie om 'n inspirerende dag van badass kreatiewe dame leiers bring om te praat, saam te werk en mentor by PNCA op 24 September Tig Notaro , stand-up comic en ster van HBOS Tig Notaro: Boyish Girl Interrupted. wil kop, saam met Sarah Shapiro, filmmaker, regisseur en skepper van Leeftye onwerklik. Die konferensie sal 'n verskeidenheid van kreatiewe industriesfrom kommunikasie te vermaak, kos, tegnologie en doeners / makers span. Elke spreker sal ondersoek hoe hulle gekom het waar hulle is, en waar hulle wil gaan van hier af. Die geleentheid vind plaas in PNCAs super-rad nuwe ruimte geleë op 511 NW Broadway van 8:30-05:30. Kry jou kaartjies en besonderhede hier: bit. ly/3percentpdx It8217s September, so dit beteken it8217s fiets pendel Challenge maand hier in Oregon Een van die vele voordele van die werk by die WiedenKennedy is dat ons ondersteun ons fiets pendelaars. It8217s Portland, na alles. Die Fiets Vervoer Alliansie. 'n nie-winsgewende fiets voorspraak groep gebaseer in Portland, sit op die fiets pendel Challenge elke September, waartydens besighede kompeteer om die hoogste persentasie van pendel met die fiets het. WK is altyd 'n front runner in die kompetisie (we8217ll jy vang vanjaar, Reed College). Ons gebruik die maand van September tot ons fiets pendelaars wys ekstra liefde deur hosting partye en werkswinkels, weeklikse Ontbyt, en raffling pryse. Ek. f. c. e. f. G. Ek. x. A. e. E. f. A. e. E. f. F. Ek. x. X. a. A. e. E. f. F. Ek. x. Ek. x. Ek. x. Ek. x. A. e. E. f. F. Ek. x. Ek. x. Ek. x. Ek. x. A. e. E. f. F. x. f. onderskeidelik. a. E. f. F.
No comments:
Post a Comment