Acasă Finanțe personale Marcând ios Flags în C ++ - dummies

Marcând ios Flags în C ++ - dummies

Video: Discursul medicului Ben Carson l-a eclipsat pe cel al lui Obama, 2024

Video: Discursul medicului Ben Carson l-a eclipsat pe cel al lui Obama, 2024
Anonim

Când deschideți un fișier construindu-se fie o instanță instream sau ifstream, puteți modifica modul în care fișierul se va deschide furnizând ceea ce se numește flag. În termeni de calculator, un steag este pur și simplu un element mic a cărui prezență sau lipsă de prezență indică o funcție de a face ceva. Cu clasele instream și ifstream, funcția în cauză este constructorul.

Un steguleț arată ca ios:: app dacă utilizați un compilator care nu este complet compatibil cu ANSI sau arată ca ios_base:: app dacă utilizați unul care este complet compatibil cu ANSI. Acest steag special înseamnă că doriți să scrieți un fișier, dar doriți să adăugați la orice date existente care ar putea fi deja într-un fișier. Furnizați acest steguleț ca argument al constructorului pentru astream, ca în oricare dintre următoarele exemple:

outstream outstream ("AppendableFile. Txt", ios:: app); outstream ("AppendableFile. txt", ios_base:: app);

Puteți vedea că steagul este adăugat ca un al doilea parametru constructorului. Pe lângă aplicație există și alte drapele și le puteți combina utilizând operatorul sau,. De exemplu, un drapel este ios:: nocreate (care nu este inclus în compilatoarele mai noi).

Aceasta înseamnă că "deschideți fișierul numai dacă există deja. "Asta este, nu creați fișierul dacă acesta nu există. (Amintiți-vă că fluxul de date creează un fișier dacă acesta nu există deja.) Dacă fișierul nu există, deschiderea va eșua și când veți apela eșuează, veți primi un adevărat.

Steagul ios:: nocreate este la îndemână cu ios:: app. Împreună, acestea înseamnă să deschidă un fișier existent și să îl atașeze . Aceasta înseamnă că cele două împreună vor funcționa numai dacă fișierul există deja, iar apelul va deschide fișierul pentru o operație de adăugare. Dacă fișierul nu există deja, fișierul nu va fi creat. Iată un eșantion:

outstream outstream ("… / MyFile. Txt", ios:: app | ios:: nocreate); dacă (outfile. fail ()) {cout << "nu a putut deschide fișierul!" << endl; retur 0;} outfile << "hi" << endl; outfile. închide();

Dacă MyFile. txt nu există când executați acest cod, primiți mesajul Nu a putut fi deschis fișierul! Dar dacă MyFile. txt nu există, aplicația o deschide, adaugă șirul Hi la ea și în cele din urmă o închide.

Se pare că steagul nocreate nu este disponibil în noua Bibliotecă Standard. Păcat. Prin urmare, codul funcționează numai dacă utilizați o versiune anterioară a bibliotecii. Când utilizați codul:: Compilarea blocurilor, veți vedea următorul mesaj de eroare:

eroare: "nocreate" nu este membru al "; std:: ios '

Cu toate acestea, veți dori să testați dacă compilatorul dvs. special include o bibliotecă care acceptă ios:: nocreate.Compilatorul dvs. o poate sprijini oricum, chiar dacă include noua Bibliotecă Standard. Ca alternativă la ios:: nocreate, puteți folosi următorul cod (găsit în exemplul FileOutput02):

ifstream infile ("… / MyFile. Txt"); dacă (infilează eșuează ()) {cout << "nu a putut deschide fișierul!" << endl; retur 0;} infile. închide(); outstream outstream ("… / MyFile.txt", ios:: app); outfile << «hi» << endl; outfile. închide();

În acest caz, începeți prin a încerca să deschideți fișierul pentru citire. Dacă fișierul nu există, nu puteți citi din acesta și codul se termină cu un mesaj de eroare. Dacă codul poate citi din fișier, redeschide fișierul pentru scriere. Aceasta este o soluție greoaie, dar funcționează.

În continuare este prezentată o listă a steagurilor disponibile. Mai întâi, aici sunt cele pentru iOS, în cazul în care utilizați un compilator care nu este complet compatibil cu ANSI:

  • ios:: app: Acest steag înseamnă că doriți să deschideți un fișier și să îl atașați.

  • ios:: in: Includeți acest steag dacă doriți să citiți dintr-un fișier.

  • ios:: out : Includeți acest steag dacă doriți să scrieți un fișier.

  • ios:: trunc : Includeți acest steag dacă doriți să ștergeți conținutul fișierului înainte de a-l scrie. Este opusul anexei și este de asemenea implicit dacă nu includeți în mod specific ios:: app.

  • ios:: nocreate : Utilizați acest steag dacă doriți să vă asigurați că fișierul nu va fi creat dacă acesta nu există, rezultând că fișierul nu este deschis.

  • ios:: noreplace : Acest steag este opusul nocreate. Utilizați acest steag dacă doriți doar să creați un fișier nou. Dacă utilizați acest steag și fișierul există deja, fișierul nu se va deschide și acel eșec va reveni la adevărat.

Compilatoarele compatibile cu ANSI nu acceptă nici pavilionul ios:: noreplace. În acest caz, puteți folosi opusul fixului pentru pictograma ios: nocreate, așa cum se arată aici (și găsit în exemplul FileOutput03):

ifstream infile ("… / MyFile.txt"); dacă (! infile. fail ()) {cout << "fișierul există deja!" << endl; retur 0;} infile. închide(); outstream outstream ("… / MyFile.txt"); outfile << «hi» << endl; outfile. închide();

În acest caz, codul încearcă să deschidă fișierul pentru citire. Dacă fișierul există, codul afișează un mesaj de eroare și iese. În caz contrar, codul creează un fișier nou și îl scrie.

Următoarele steaguri sunt disponibile într-un compilator care este absolut compatibil cu ANSI!

  • ios:: ate: Utilizați acest steag pentru a merge la sfârșitul fișierului după ce îl deschideți. În mod normal, utilizați acest steag atunci când doriți să adăugați date în fișier.

  • ios_base:: binary: Utilizați acest steag pentru a specifica că fișierul pe care îl deschideți va conține date binare - adică date care nu reprezintă șiruri de caractere.

  • ios_base:: in: Specificați acest steag atunci când doriți să citiți dintr-un fișier.

  • ios_base:: out: Includeți acest steag atunci când doriți să scrieți un fișier.

  • ios_base:: trunc: Includeți acest steag dacă doriți să ștergeți conținutul unui fișier înainte de a scrie la el.

  • ios_base:: app: Includeți acest steag dacă doriți să adăugați la fișier. Este opusul truncului - adica informatia care se afla deja in fisier cand o deschideti va ramane acolo.

De ce aveți nevoie de un steag și un steag? Se pare că calculatorul ar trebui să știe dacă scrieți la un fișier sau citiți de la el, în funcție de (respectiv) dacă utilizați în flux sau în flux. Răspunsul la motivul pentru care aveți un steag și un steag este că alte clase sunt disponibile pe lângă streamstream și ifstream.

Compilatorii care nu suportă încă standardul ANSI au o clasă generică în bibliotecile lor numite fstream. Compilatoarele compatibile cu ANSI au în bibliotecile lor o clasă de șabloane numită basic_filebuf și o clasă numită filebuf. Dacă utilizați aceste clase, puteți utiliza stegulețele de intrare și ieșire.

Marcând ios Flags în C ++ - dummies

Alegerea editorilor

Social Media Design: Twitter Opțiuni imagine - dummy

Social Media Design: Twitter Opțiuni imagine - dummy

Jonglați constrângerile legate de spațiu și modul cel mai bun de a poziționa cele trei imagini separate pe care vi se permite să le utilizați în profilul dvs. Twitter.

Social Media Design: Inspirând exemplele de afaceri pe Facebook - manechine

Social Media Design: Inspirând exemplele de afaceri pe Facebook - manechine

ÎNainte de scufundări în elementele de bază ale proiectării o pagină solidă Facebook, aruncați o privire asupra unor branduri care profită din plin de Facebook cu pagini proprii. Persoanele fizice și organizațiile de la bloggeri la proprietarii de magazine Etsy de la domiciliu la branduri internaționale folosesc Facebook pentru a se conecta cu clienții și fanii existenți, precum și cu potențialul lor ...

Social Media Optimization: Publicarea Tweets automat la profilul dvs. Facebook - dummies

Social Media Optimization: Publicarea Tweets automat la profilul dvs. Facebook - dummies

Lucrurile noi pe care să le postați pe Facebook pot fi o adevărată corvoadă. Din fericire, există un truc pe care îl puteți optimiza pe acest site media social. Dacă puteți atinge postarea încrucișată a conținutului între servicii, vă puteți salva ceva timp. Twitter vă oferă posibilitatea de a vă conecta profilul cu alte servicii. Există, ...

Alegerea editorilor

Cum se verifică performanța sistemului cu AWS - dummies

Cum se verifică performanța sistemului cu AWS - dummies

AWS (Amazon Web Services) metode pentru monitorizarea serviciilor specifice AWS. Cu toate acestea, este posibil să aveți probleme de performanță a sistemului sau probleme de aplicare non-AWS care trebuie abordate, ceea ce înseamnă că aveți instrumente care pot funcționa în afara AWS. Pachetul de grupuri de instrumente de performanță conține un număr de instrumente specifice pentru realizarea acestei sarcini ...

Cum să alegeți serviciile AWS de care aveți nevoie - dummies

Cum să alegeți serviciile AWS de care aveți nevoie - dummies

Amintiți-vă că aveți doar 12 luni de libertate proces în care să se ia decizii privind serviciile AWS (Servicii Amazon Web) pe care să le utilizați în afacerea dvs. Douăsprezece luni pot părea mult timp, dar veți descoperi că se evaporă înaintea ochilor dvs. în timp ce încercați să vă jonglați responsabilitățile zilnice, întâlnirile ...

Probleme de securitate aWS - dummy

Probleme de securitate aWS - dummy

Pentru a utiliza AWS (Amazon Web Services) cale. Administratorii și profesioniștii în domeniul securității se pot răzbuna rapid, încercând să păstreze aceste computere interconectate în siguranță, dar aceasta face parte din descrierea postului. Trebuie să urmați cele mai bune practici în securizarea sistemelor informatice, a datelor pe care le conțin, ...

Alegerea editorilor

Cum se asamblează o Circuit de organe color - dummies

Cum se asamblează o Circuit de organe color - dummies

După ce ați strâns toate materialele de care aveți nevoie construiți un organ de culoare, sunteți gata să asamblați proiectul. Vedeți ce aveți nevoie pentru a construi un circuit de organe color. Veți avea nevoie de următoarele instrumente: Sârma de lipit, de preferință cu setări de 20 și 40 W Solder Utilizați lipire mai groasă pentru firele de tensiune și subțire ...

Construirea unui Circuit Dead-Bug Style - dummies

Construirea unui Circuit Dead-Bug Style - dummies

) Sunt montate cu capul în jos pe placa de circuit imprimat (PC), majoritatea picioarelor lipindu-se în aer! Arata ca multe. . . morți bug-uri! Un alt nume pentru acest tip de construcție este "circuitele de aer", deoarece componentele sunt atașate direct la ...

Aplicarea RFID în lumea reală - dummies

Aplicarea RFID în lumea reală - dummies

Capacitatea de a urmări și de a urmări, de a urmări și de a găsi, peek sunt toate îmbunătățite prin utilizarea RFID. Unii avocați de confidențialitate vă faceți griji că aparatele vor atașa în mod magic etichetele RFID la îmbrăcăminte sau pantofi pe măsură ce vă plimbați prin magazin sau în jurul unui birou, dar acest lucru este foarte puțin probabil. Limitele ...