Rumah >pembangunan bahagian belakang >C++ >Penulisan Fail Perduaan lwn Teks: Apakah Perbezaan Utama dalam Pengendalian Data?

Penulisan Fail Perduaan lwn Teks: Apakah Perbezaan Utama dalam Pengendalian Data?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-25 14:14:09891semak imbas

Binary vs. Text File Writing: What are the Key Differences in Data Handling?

Memahami Perbezaan Antara Penulisan Fail Mod Binari dan Teks

Apabila menulis data ke fail, pengaturcara boleh memilih antara mod binari dan mod teks . Mod binari membenarkan pemindahan data terus tanpa sebarang pengubahsuaian, manakala mod teks menggabungkan terjemahan tertentu khusus untuk MS Visual C.

Pertimbangkan coretan kod berikut yang menulis data ke fail:

unsigned char buffer[256];
for (int i = 0; i < 256; i++) buffer[i] = i;
int size = 1;
int count = 256;

Dalam mod binari, data ditulis terus ke fail:

FILE *fp_binary = fopen(filename, "wb");
fwrite(buffer, size, count, fp_binary);

Dalam mod teks, bagaimanapun, data menjalani terjemahan tertentu sebelum ditulis:

FILE *fp_text = fopen(filename, "wt");
fwrite(buffer, size, count, fp_text);

Khususnya, pada Windows, terjemahan berikut berlaku apabila membuka fail dalam mod teks:

  • Suapan talian ('n') ialah ditukar kepada jujukan 'rn' pada output.
  • Jurutan suapan penghantaran/baris ditukar kepada suapan talian pada input.
  • Dalam mod tambah, hujung fail disemak untuk aksara Ctrl Z ('x1A'). Jika ada, ia dialih keluar dan aksara itu dianggap sebagai penghujung fail. Walau bagaimanapun, ia tidak dilampirkan pada fail.

Atas ialah kandungan terperinci Penulisan Fail Perduaan lwn Teks: Apakah Perbezaan Utama dalam Pengendalian Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn