Rumah Kewangan Peribadi Menandakan bendera ios dalam C ++ - dummies

Menandakan bendera ios dalam C ++ - dummies

Video: Web Development - Computer Science for Business Leaders 2016 2024

Video: Web Development - Computer Science for Business Leaders 2016 2024
Anonim

Apabila anda membuka fail dengan membina sama ada contoh arus atau ifstream, anda boleh mengubah cara cara membuka fail dengan membekalkan apa yang dipanggil bendera. Dalam istilah komputer, bendera hanyalah item kecil yang kehadirannya atau kekurangan kehadiran memberitahu fungsi bagaimana melakukan sesuatu. Dengan kelas hulu dan ifstream, fungsi yang dimaksudkan ialah pembina.

Bendera kelihatan seperti ios:: app jika anda menggunakan pengompil yang tidak mematuhi sepenuhnya ANSI, atau kelihatan seperti ios_base:: app jika anda menggunakan salah satu yang mematuhi sepenuhnya ANSI. Bendera tertentu ini bermakna bahawa anda ingin menulis ke fail, tetapi anda ingin menambahkan pada mana-mana data yang ada yang mungkin ada dalam fail. Anda membekalkan bendera ini sebagai hujah pembina untuk hulu, seperti dalam contoh berikut:

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

Anda dapat melihat bahawa bendera ditambah sebagai parameter kedua kepada pembina. Bendera lain wujud selain aplikasi, dan anda boleh menggabungkannya dengan menggunakan atau pengendali, |. Sebagai contoh, satu bendera adalah ios:: nocreate (yang tidak termasuk dalam penyusun baru).

Ini bermakna "hanya buka fail itu jika sudah ada. "Artinya, jangan buat fail jika tidak ada. (Ingat, arus mencipta fail jika tidak ada.) Jika fail tidak ada, terbuka akan gagal, dan apabila anda memanggil gagal, anda akan dapat kembali yang benar.

The ios:: bendera nocreate berguna dengan ios:: app. Bersama-sama, ini bermaksud membuka fail yang ada dan masukkan kepadanya . Iaitu, kedua-dua bersama akan berfungsi hanya jika fail itu sudah wujud, dan panggilan itu akan membuka fail untuk operasi tambahan. Sekiranya fail tersebut belum ada, fail itu tidak akan dibuat. Berikut adalah contoh panggilan:

outfile outstream ("… / MyFile. Txt", ios:: app | ios:: nocreate); jika (outfile. fail ()) {cout << "tidak dapat membuka fail!" << endl; kembali 0;} outfile << "hi" << endl; outfile. tutup ();

Jika MyFile. txt tidak wujud semasa anda menjalankan kod ini, anda mendapat mesej Tidak dapat membuka fail! Tetapi jika MyFile. txt tidak wujud, permohonan itu membukanya, memasukkan rentetan Hi kepada itu, dan akhirnya menutupnya.

Ternyata bendera yang tidak sempurna tidak terdapat dalam Perpustakaan Standard yang baru. Bummer. Oleh itu kod itu hanya berfungsi jika anda menggunakan versi perpustakaan yang lebih awal. Apabila menggunakan Kod:: Pengompas blok, anda melihat mesej ralat berikut:

ralat: 'nocreate' bukan ahli '; std:: ios '

Walau bagaimanapun, anda akan mahu menguji sama ada pengkompil tertentu anda termasuk perpustakaan yang menyokong ios:: nocreate.Pengkompil anda boleh menyokongnya, walaupun ia termasuk Perpustakaan Standard baru. Sebagai alternatif kepada ios:: nocreate, anda boleh menggunakan kod berikut (terdapat dalam contoh FileOutput02):

ifstream infile ("… / MyFile. Txt"); jika (infile. gagal ()) {cout << "tidak dapat membuka fail!" << endl; kembali 0;} infile. tutup (); outfile outstream ("… / MyFile. txt", ios:: app); outfile << "hi" << endl; outfile. tutup ();

Dalam kes ini, anda mulakan dengan cuba membuka fail untuk dibaca. Jika fail tidak wujud, anda tidak boleh membaca dan kod keluar dengan mesej kegagalan. Jika kod boleh dibaca dari fail, ia membuka semula fail untuk menulis. Ini adalah penyelesaian yang rumit, tetapi ia berfungsi.

Berikut ialah senarai bendera yang tersedia. Pertama, inilah yang untuk ios, sekiranya anda menggunakan pengkompil yang tidak sepenuhnya mematuhi ANSI:

  • ios:: app: Bendera ini bermaksud bahawa anda ingin membuka fail dan memasukkannya.

  • ios:: dalam: Sertakan bendera ini jika anda mahu membaca dari fail.

  • ios:: out : Sertakan bendera ini jika anda ingin menulis ke fail.

  • ios:: trunc : Sertakan bendera ini jika anda mahu memadamkan kandungan fail sebelum menulis kepadanya. Ia bertentangan dengan append, dan ia juga merupakan lalai jika anda tidak memasukkan ios:: app.

  • ios:: nocreate : Gunakan bendera ini jika anda ingin memastikan fail itu tidak akan dibuat jika ia tidak wujud, mengakibatkan fail tidak dibuka.

  • ios:: noreplace : Bendera ini adalah bertentangan dengan nocreate. Gunakan bendera ini jika anda hanya mahu membuat fail baru. Jika anda menggunakan bendera ini dan fail itu sudah wujud, fail itu tidak akan dibuka, dan kegagalan itu akan kembali benar .

Kompilator yang mematuhi ANSI tidak menyokong sama ada: noreplace flag sama ada. Dalam kes ini, anda boleh menggunakan kebalikannya untuk menetapkan ios: bendera yang menggantikan, seperti yang ditunjukkan di sini (dan dijumpai dalam contoh FileOutput03):

ifstream infile ("… / MyFile. Txt"); jika (! infile. fail ()) {cout << "fail sudah ada!" << endl; kembali 0;} infile. tutup (); outfile outstream ("… / MyFile. txt"); outfile << "hi" << endl; outfile. tutup ();

Dalam kes ini, kod tersebut cuba membuka fail untuk dibaca. Sekiranya terdapat fail, kod tersebut menunjukkan mesej ralat dan keluar. Jika tidak kod mencipta fail baru dan menulis kepadanya.

Bendera-bendera berikut boleh didapati dalam pemasang yang benar-benar sesuai dengan ANSI!

  • ios:: makan: Gunakan bendera ini untuk pergi ke akhir fail selepas anda membukanya. Biasanya, anda menggunakan bendera ini apabila anda mahu menambah data pada fail itu.

  • ios_base:: binari: Gunakan bendera ini untuk menentukan bahawa fail yang anda buka akan memegang data perduaan - iaitu data yang tidak mewakili rentetan aksara.

  • ios_base:: dalam: Nyatakan bendera ini apabila anda mahu membaca dari fail.

  • ios_base:: keluar: Sertakan bendera ini apabila anda ingin menulis ke fail.

  • ios_base:: trunc: Sertakan bendera ini jika anda ingin menghapus kandungan fail sebelum menulis kepadanya.

  • ios_base:: app: Sertakan bendera ini jika anda ingin menambahkan pada fail tersebut. Ini bertentangan dengan trunc - iaitu, maklumat yang sudah ada di dalam fail apabila anda membukanya akan tinggal di sana.

Kenapa anda memerlukan bendera dan bendera keluar? Nampaknya komputer perlu tahu sama ada anda sedang menulis ke fail atau membaca daripadanya, bergantung (masing-masing) sama ada anda menggunakan arus atau ifstream. Jawapan untuk mengapa anda mempunyai bendera dan bendera keluar ialah kelas-kelas lain boleh didapati selain dari arus dan ifstream.

Penyusun yang belum lagi menyokong standard ANSI mempunyai kelas generik dalam perpustakaan mereka yang disebut fstream. Penyusun yang mematuhi ANSI ada di dalam perpustakaan mereka sebagai kelas template yang disebut basic_filebuf dan kelas yang disebut filebuf. Jika anda menggunakan kelas ini, anda boleh menggunakan bendera masuk dan keluar.

Menandakan bendera ios dalam C ++ - dummies

Pilihan Editor

Meningkatkan Rancangan Navigasi Blog - dummies

Meningkatkan Rancangan Navigasi Blog - dummies

Reka bentuk navigasi hebat untuk blog anda meningkatkan pengalaman pembaca. Reka bentuk navigasi buruk di blog mengecewakan pengunjung yang ingin mencari catatan blog tertentu dengan cepat, atau membaca siaran berkaitan atau yang serupa. Mengharapkan keperluan pelawat anda dengan memikirkan blog anda seperti kedai, dan jawatan blog anda seperti produk: Catatan popular dan terkini: ...

Meningkatkan Pengalaman Pengguna Blog dengan Plugin - dummies

Meningkatkan Pengalaman Pengguna Blog dengan Plugin - dummies

Beberapa teknologi yang berbeza dapat meningkatkan blog anda . Plug-in, widget, dan alat semua membuat ciri-ciri baru, integrasi, dan penambahan mudah untuk dibungkus dan diedarkan. Teknologi-teknologi ini berkembang sepanjang masa, tetapi untuk mendapatkan blog anda dan berjalan, berikut adalah beberapa pilihan terbaik semasa untuk pelbagai tujuan. Widget / Name Plugin ...

Meningkatkan Tajuk Blog Anda dan Reka Bentuk Tagline untuk SEO - patung

Meningkatkan Tajuk Blog Anda dan Reka Bentuk Tagline untuk SEO - patung

Tag tajuk blog anda dan tagline memberi enjin carian penerangan kandungan blog anda. Reka bentuk blog SEO yang berkesan bermakna memastikan jawatan blog enjin carian yang layak dan halaman mempunyai tag tajuk mereka sendiri dan bahawa slogan setiap halaman penuh dengan kata kunci yang berkaitan.

Pilihan Editor

Office 2013 Save As Dialog Box - dummies

Office 2013 Save As Dialog Box - dummies

Office 2013 menggunakan SkyDrive pengguna Windows semasa sebagai penyimpanan default lokasi. SkyDrive adalah kawasan penyimpanan dalam talian berasaskan awan yang dihoskan oleh Microsoft. Sesiapa yang mendaftarkan perkhidmatan, atau yang log masuk ke Windows 8 dengan Microsoft ID, diberikan sejumlah ruang penyimpanan percuma, dan boleh membeli lebih banyak. Cloud adalah ...

Unclutter Peti Masuk Outlook anda dengan Clutter - dummies

Unclutter Peti Masuk Outlook anda dengan Clutter - dummies

Mahu aplikasi e-mel yang juga pembaca minda? Keinginan anda diberikan. Anda boleh mengucapkan terima kasih kepada Graph Office dan Clutter, ciri baru dalam Outlook. Clutter menggunakan teknologi di sebalik Grafik Pejabat untuk menganalisis isyarat yang anda hantar apabila anda mengambil tindakan terhadap e-mel anda. Sebagai contoh, jika anda cenderung untuk mengabaikan e-mel daripada ...

Pilihan Editor

Elakkan Berat Berat Ketika Menguatkuasakan Garis Panduan Komuniti Dalam Talian - dummies

Elakkan Berat Berat Ketika Menguatkuasakan Garis Panduan Komuniti Dalam Talian - dummies

Hanya kerana anda mempunyai kuasa untuk berbuat demikian tidak bermakna bahawa semua masalah komuniti dalam talian memerlukan amaran dan banner. Ya, anda ingin menonjolkan keadaan negatif di dalam tunas, tetapi tidak, anda tidak mahu mendapat sedikit tentangnya sama ada. Kadang-kadang membiarkan slaid isu baik-baik saja. Sebagai pengurus komuniti, tugas anda untuk mengetahui ...

Elakkan Peluang Yang Berisiko Reputasi Blog Anda - dummies

Elakkan Peluang Yang Berisiko Reputasi Blog Anda - dummies

Apabila anda mengaitkan blog ibu anda dan jenama peribadi anda produk atau jenama syarikat, tidak dapat dielakkan bahawa anda akan menggosok satu sama lain. Suka atau tidak, anda boleh dan boleh dikaitkan dengan jenama itu. Tidak semua syarikat yang ingin memberi anda produk percuma adalah yang anda mahu ...

Peruntukkan Peranan ke Font di Laman Blog Anda - dummies

Peruntukkan Peranan ke Font di Laman Blog Anda - dummies

Apabila anda menetapkan peranan ke fon anda, membantu memastikan reka bentuk blog anda kelihatan profesional. Menjaga tujuan fon anda jelas menjadikan reka bentuk navigasi blog anda lebih berkesan dan reka bentuk keseluruhan anda lebih mudah di mata. Selepas anda memilih dua atau tiga fon pelengkap yang juga mempunyai perbezaan yang cukup untuk menonjol dari satu sama lain (lihat ...