Rumah masalah biasa Apakah jenis fail yang boleh dikendalikan oleh bahasa C?

Apakah jenis fail yang boleh dikendalikan oleh bahasa C?

Sep 19, 2022 pm 03:53 PM
c bahasa

Jenis fail yang boleh diproses oleh bahasa C ialah: fail teks dan fail binari. Fail yang boleh diproses oleh bahasa C dibahagikan kepada fail teks dan fail binari mengikut bentuk simpanan: 1. Fail teks menyimpan kod ASCII, dan kandungan fail boleh terus masuk dan keluar 2. Fail binari terus menyimpan aksara , dan fail binari tidak boleh disimpan Kandungan fail dikeluarkan terus ke skrin.

Apakah jenis fail yang boleh dikendalikan oleh bahasa C?

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi c99, komputer Dell G3.

Dalam komputer, input dan output adalah dalam bentuk aliran data. Mengikut mod capaian, fail dibahagikan kepada fail capaian berjujukan dan fail capaian rawak. Mengikut borang storan, ia dibahagikan kepada fail binari dan fail teks. Fail teks menyimpan kod ASCII, dan kandungan fail boleh menjadi input dan output secara langsung. Fail binari menyimpan aksara secara langsung, dan kandungan fail binari tidak boleh dikeluarkan terus ke skrin. Oleh itu, fail yang bahasa C boleh diproses dibahagikan kepada fail teks dan fail binari mengikut borang storan.

Perbezaan antara fail teks dan fail binari

Fail teks biasanya digunakan untuk menyimpan aksara yang boleh dilihat dengan mata kasar, seperti fail .txt, . c, dan fail .dat, dsb., buka fail ini dengan editor teks, dan kami boleh berjaya memahami kandungan fail tersebut.

Fail binari biasanya digunakan untuk menyimpan kandungan yang tidak boleh dibaca seperti video, gambar, atur cara, dsb. Jika anda membuka fail ini dengan editor teks, anda akan melihat sekumpulan aksara bercelaru yang anda tidak faham sama sekali.

Tetapi secara fizikal, tidak ada perbezaan antara fail binari dan fail aksara Kedua-duanya adalah data yang disimpan pada cakera dalam bentuk binari.

Sebab mengapa kita boleh memahami kandungan fail teks adalah kerana fail teks menggunakan pengekodan aksara seperti ASCII, UTF-8, GBK, dll. Penyunting teks boleh mengenali format pengekodan ini dan menukar nilai pengekodan untuk Tukar kepada aksara dan memaparkannya.

Fail binari menggunakan format pengekodan khas seperti mp4, gif, exe, dll. Penyunting teks tidak mengenali format pengekodan ini dan hanya boleh menghuraikannya secara rawak mengikut format pengekodan aksara, jadi ia menjadi kucar-kacir watak-watak, ada yang tidak pernah melihatnya.

Jika kami mencipta fail mp4 baharu, menulis rentetan aksara ke dalamnya, dan kemudian membukanya dengan editor teks, anda masih boleh memahaminya. Pembaca yang berminat boleh mencubanya sendiri.

Secara amnya, jenis fail yang berbeza mempunyai format pengekodan yang berbeza dan atur cara (perisian) yang sepadan mesti digunakan untuk menghuraikannya dengan betul, jika tidak, ia akan menjadi sekumpulan aksara yang bercelaru atau tidak boleh digunakan.

Bagi pengaturcara, fail teks dan fail binari ialah pernyataan, yang menunjukkan cara anda harus membuka fail (mod teks/binari), apakah fungsi yang perlu anda gunakan untuk membaca dan menulis fail ini (fungsi baca dan tulis), dan bagaimana Penghakiman dibaca hingga akhir fail ini.

Khususnya:

1. Bagaimana untuk membuka fail?

ANSI C menentukan pustaka fungsi input dan output standard, dan menggunakan fungsi fopen() untuk membuka fail. Kaedah memanggil fungsi fopen() secara amnya:

FILE *fp;
fp=fopen(文件名,使用文件方式);
Salin selepas log masuk

Kaedah fail digunakan dalam jadual berikut:

The kaedah fail digunakan

Maksud

"r" (baca sahaja)

Buka untuk memasukkan fail teks

"w" (tulis sahaja)

Buka teks fail untuk output

"a" (tambah)

Buka fail teks untuk tambah

"rb" (baca sahaja)

Membuka fail binari untuk input

" wb" (tulis sahaja)

Buka fail binari untuk output

"ab" (tambah)

Buka fail binari untuk ditambahkan

"r " (baca dan tulis)

Buka fail teks untuk membaca/menulis

"w " (baca dan tulis)

untuk membaca /menulis Cipta fail teks

"a " (baca dan tulis)

Buka fail teks untuk membaca/menulis Fail

"rb " (baca dan tulis)

Membuka fail binari untuk membaca/menulis

"wb" (baca dan tulis)

Cipta fail binari untuk membaca/menulis

"ab " (baca dan tulis)

Buka fail binari untuk membaca/menulis

Apabila fail yang sama dibaca dari cakera ke memori (kawasan data program atau kawasan cache), kandungan dalam memori secara amnya berbeza dalam kedua-dua kaedah Ini adalah perbezaan yang ketara antara kedua-dua kaedah pembukaan.

Terdapat latar belakang di sini, iaitu, di bawah Windows, ia akan melakukan proses, iaitu, semasa menulis fail, aksara baris baharu akan ditukar kepada pengembalian kereta watak baris baharu akan disimpan fail cakera, dan apabila membaca fail, aksara baris baharu akan ditukar kepada fail pulangan, ia akan melakukan pemprosesan terbalik, iaitu, menukar pulangan pengangkutan dan suapan baris berturut-turut dalam fail kepada suapan baris.

Oleh itu, apabila membaca fail cakera, kandungan fail yang dibaca dalam mod teks mungkin lebih pendek daripada fail binari, kerana membaca dalam mod teks memerlukan dua aksara carriage return dan suapan baris untuk ditukar menjadi satu character. , yang sama dengan memotong fail. Tetapi mengapa ia hanya mungkin? Kerana mungkin tidak terdapat dua bait 45 dan 42 berturut-turut dalam teks (45 ialah kod ASCII bagi CR carriage return, 42 ialah kod ASCII bagi suapan talian CL), tiada operasi "pemangkasan", jadi membaca Kandungan ialah sama.

Khususnya, fail fail (ditulis dalam mod teks) paling baik dibaca dalam mod teks. Fail binari (ditulis dalam mod binari) paling baik dibaca dalam mod binari. Jika tidak, ia mungkin tidak betul. Perkara di atas telah dianalisis.

2. Apakah fungsi yang digunakan untuk membaca dan menulis fail?

Cara data ditulis pada cakera tidak ditentukan oleh kaedah pembukaan fail, tetapi oleh fungsi penulisan. Cara data dibaca dari cakera tidak ditentukan oleh kaedah pembukaan fail, tetapi oleh fungsi baca.

Bagaimana untuk menulis data yang dinyatakan di atas bermaksud bagaimana untuk menyimpan jenis pembolehubah? Contohnya, int 12 boleh terus menyimpan kod binari 12 (4 bait), atau ia boleh menyimpan aksara 1 dan aksara 2.

Cara membaca data bermakna jika saya ingin membaca pembolehubah int, saya boleh membacanya secara langsung saiz (int) bait, atau membaca aksara demi aksara sehingga aksara yang dibaca bukan aksara angka.

Terdapat dua set fungsi membaca dan menulis fail dalam C yang menyokong dua kaedah membaca dan menulis di atas:

  • 1.fread(buffer, size, count , fp), fwrite(penampan, saiz, kiraan, fp). Digunakan untuk membaca dan menulis blok data. Ia sepadan dengan kaedah penyimpanan pertama. Tentukan secara langsung bilangan bait untuk dibaca dan ditulis mengikut panjang bait jenis.

  • Fungsi 2fprintf dan fungsi fscanf Ia sepadan dengan kaedah membaca dan menulis kedua. Iaitu membaca dan menulis dalam format aksara. (Fungsi fprintf dan fungsi fscanf mempunyai fungsi yang serupa dengan fungsi printf dan fungsi scanf. Kesemuanya adalah fungsi membaca dan menulis berformat. Objek membaca dan menulis fungsi fprintf dan fscanf ialah fail cakera, manakala objek membaca dan menulis daripada fungsi printf dan scanf ialah terminal.)

Format panggilan umum mereka ialah:

fprintf(文件指针,格式字符串,输出列表);

fscanf (文件指针,格式字符串,输入列表);

3 Bagaimana untuk menentukan penghujung fail ?

Dalam bahasa C, atau lebih tepat lagi pustaka fungsi standard C, terdapat aksara khas EOF (takrifan ini dalam stdio.h #define EOF (-1) ), yang bermaksud :end of fail. Dalam gelung sementara, EOF digunakan sebagai tanda akhir fail Fail dengan EOF sebagai tanda akhir fail mestilah fail teks. Dalam fail teks, data disimpan dalam bentuk nilai kod ASCII aksara. Kami tahu bahawa julat nilai kod ASCII ialah 0~255, dan -1 adalah mustahil, jadi EOF boleh digunakan sebagai tanda akhir fail.

Walau bagaimanapun, dalam bahasa C, apabila data disimpan dalam fail dalam bentuk binari, nilai -1 akan muncul Pada masa ini, EOF tidak boleh digunakan sebagai tanda akhir bagi fail binari. Untuk menyelesaikan masalah ini, ANSI C menyediakan fungsi feof untuk menentukan sama ada fail telah tamat. Jika penghujung fail ditemui, nilai fungsi feof (fp) ialah 1, jika tidak ia adalah 0.

Fungsi feof boleh digunakan untuk menentukan sama ada fail binari telah tamat atau sama ada teks fail telah tamat. Walau bagaimanapun, perlu diambil perhatian bahawa apabila feof digunakan untuk menentukan penghujung fail teks, jika kod tidak ditulis dengan betul, aksara akhir fail EOF dalam teks juga boleh dibaca lihat http://baike .baidu.com/view/656648 untuk butiran htm

4 Mengetahui sama ada fail ialah fail teks atau fail binari akan "mengingatkan" kita lebih lanjut tentang fungsi membaca dan menulis yang mana kita patut pilih. .

Seperti yang dinyatakan dalam 2, cara data disimpan tidak ditentukan oleh kaedah pembukaan fail, tetapi oleh fungsi baca dan tulis.

Sebagai contoh, jika kita membuka fail sebagai fail binari (sebenarnya hanya menyatakan penukaran aksara baris baharu), ia lebih mewakili idea (maya): Saya "berharap" Data dalam fail ini adalah seperti ini, jenis int menduduki 4 bait, dan jenis char menduduki 1 bait. Dalam mod ini, saya menggunakan fread(buffer,size0f(int),1,fp) untuk membaca int ke dalam pembolehubah int.

Kami ingat

Sebelum kita mengendalikan fail, pertama sekali, kita mesti tahu sama ada fail itu adalah fail teks atau fail binari. Fail dibuka dalam mod teks, dan fail binari dibuka dalam mod binari

Jika kita ingin mengendalikan fail binari, maka kita membukanya dalam mod binari (secara teorinya ia juga boleh dibuka dalam mod fail, tetapi jika data binari ditulis Apabila terdapat 45 di dalamnya, ia akan ditukar menjadi 45,42 dan disimpan, lihat 1. Ini berkemungkinan besar berlaku). Apabila membaca dan menulis pada masa yang sama, gunakan dua fungsi fread dan fwrite.

Jika saya ingin mengendalikan fail teks, maka kami membukanya dalam mod teks (secara teorinya ia juga boleh dibuka dalam mod binari, tetapi ia tidak selamat). Apabila membaca dan menulis pada masa yang sama, gunakan fungsi tersebut fprintf, fscanf, fgetc, fputc, putw, getw, fgetc, fputs

Cadangan berkaitan: "Tutorial Video C"

Atas ialah kandungan terperinci Apakah jenis fail yang boleh dikendalikan oleh bahasa C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Struktur Data Bahasa C: Perwakilan Data dan Operasi Pokok dan Grafik Struktur Data Bahasa C: Perwakilan Data dan Operasi Pokok dan Grafik Apr 04, 2025 am 11:18 AM

Struktur Data Bahasa C: Perwakilan data pokok dan graf adalah struktur data hierarki yang terdiri daripada nod. Setiap nod mengandungi elemen data dan penunjuk kepada nod anaknya. Pokok binari adalah jenis pokok khas. Setiap nod mempunyai paling banyak dua nod kanak -kanak. Data mewakili structtreenode {intData; structtreenode*left; structtreenode*right;}; Operasi mewujudkan pokok traversal pokok (predecision, in-order, dan kemudian pesanan) Node Node Carian Pusat Node Node adalah koleksi struktur data, di mana unsur-unsur adalah simpul, dan mereka boleh dihubungkan bersama melalui tepi dengan data yang betul atau tidak jelas yang mewakili jiran.

Kebenaran di sebalik masalah operasi fail bahasa C Kebenaran di sebalik masalah operasi fail bahasa C Apr 04, 2025 am 11:24 AM

Kebenaran mengenai masalah operasi fail: Pembukaan fail gagal: Kebenaran yang tidak mencukupi, laluan yang salah, dan fail yang diduduki. Penulisan data gagal: Penampan penuh, fail tidak boleh ditulis, dan ruang cakera tidak mencukupi. Soalan Lazim Lain: Traversal fail perlahan, pengekodan fail teks yang salah, dan kesilapan bacaan fail binari.

Apakah keperluan asas untuk fungsi bahasa C Apakah keperluan asas untuk fungsi bahasa C Apr 03, 2025 pm 10:06 PM

Fungsi bahasa C adalah asas untuk modularization kod dan bangunan program. Mereka terdiri daripada pengisytiharan (tajuk fungsi) dan definisi (badan fungsi). Bahasa C menggunakan nilai untuk lulus parameter secara lalai, tetapi pembolehubah luaran juga boleh diubahsuai menggunakan lulus alamat. Fungsi boleh mempunyai atau tidak mempunyai nilai pulangan, dan jenis nilai pulangan mestilah selaras dengan perisytiharan. Penamaan fungsi harus jelas dan mudah difahami, menggunakan nomenclature unta atau garis bawah. Ikuti prinsip tanggungjawab tunggal dan pastikan kesederhanaan fungsi untuk meningkatkan kebolehkerjaan dan kebolehbacaan.

Cara mengeluarkan undur dalam bahasa C Cara mengeluarkan undur dalam bahasa C Apr 04, 2025 am 08:54 AM

Bagaimana untuk mengeluarkan undur di C? Jawapan: Gunakan pernyataan gelung. Langkah -langkah: 1. Tentukan pembolehubah N dan simpan nombor undur ke output; 2. Gunakan gelung sementara untuk terus mencetak n sehingga n adalah kurang dari 1; 3. Dalam badan gelung, cetak nilai n; 4. Pada akhir gelung, tolak n dengan 1 untuk mengeluarkan timbal balik yang lebih kecil seterusnya.

CS-Week 3 CS-Week 3 Apr 04, 2025 am 06:06 AM

Algorithms are the set of instructions to solve problems, and their execution speed and memory usage vary. In programming, many algorithms are based on data search and sorting. Artikel ini akan memperkenalkan beberapa algoritma pengambilan data dan penyortiran. Carian linear mengandaikan bahawa terdapat array [20,500,10,5,100,1,50] dan perlu mencari nombor 50. Algoritma carian linear memeriksa setiap elemen dalam array satu demi satu sehingga nilai sasaran dijumpai atau array lengkap dilalui. Carta aliran algoritma adalah seperti berikut: kod pseudo untuk carian linear adalah seperti berikut: periksa setiap elemen: jika nilai sasaran dijumpai: pulih semula benar-benar pelaksanaan bahasa palsu c: #termasuk #termasukintmain (tidak sah) {i

Pengaturcaraan Multithreaded Bahasa C: Panduan dan Penyelesaian Masalah Pemula Pengaturcaraan Multithreaded Bahasa C: Panduan dan Penyelesaian Masalah Pemula Apr 04, 2025 am 10:15 AM

C Language Multithreading Programming Guide: Mencipta Threads: Gunakan fungsi pthread_create () untuk menentukan id thread, sifat, dan fungsi benang. Penyegerakan Thread: Mencegah persaingan data melalui mutexes, semaphores, dan pembolehubah bersyarat. Kes praktikal: Gunakan multi-threading untuk mengira nombor Fibonacci, menetapkan tugas kepada pelbagai benang dan menyegerakkan hasilnya. Penyelesaian Masalah: Menyelesaikan masalah seperti kemalangan program, thread stop responses, dan kesesakan prestasi.

Petua Penyelesaian Masalah untuk memproses fail dalam bahasa C Petua Penyelesaian Masalah untuk memproses fail dalam bahasa C Apr 04, 2025 am 11:15 AM

Petua Penyelesaian Masalah Untuk fail pemprosesan bahasa C Apabila memproses fail dalam bahasa C, anda mungkin menghadapi pelbagai masalah. Berikut adalah masalah biasa dan penyelesaian yang sepadan: Masalah 1: Tidak dapat membuka kod fail: fail*fp = fopen ("myfile.txt", "r"); jika (fp == null) {// pembukaan fail gagal} charbuffer [100]; size_tread_bytes = fread (buffer, 1, siz

Konsep fungsi bahasa c Konsep fungsi bahasa c Apr 03, 2025 pm 10:09 PM

F Fungsi bahasa adalah blok kod yang boleh diguna semula. Mereka menerima input, melakukan operasi, dan hasil pulangan, yang secara modular meningkatkan kebolehgunaan dan mengurangkan kerumitan. Mekanisme dalaman fungsi termasuk parameter lulus, pelaksanaan fungsi, dan nilai pulangan. Seluruh proses melibatkan pengoptimuman seperti fungsi dalam talian. Fungsi yang baik ditulis mengikut prinsip tanggungjawab tunggal, bilangan parameter kecil, penamaan spesifikasi, dan pengendalian ralat. Penunjuk yang digabungkan dengan fungsi dapat mencapai fungsi yang lebih kuat, seperti mengubahsuai nilai pembolehubah luaran. Pointer fungsi meluluskan fungsi sebagai parameter atau alamat kedai, dan digunakan untuk melaksanakan panggilan dinamik ke fungsi. Memahami ciri dan teknik fungsi adalah kunci untuk menulis program C yang cekap, boleh dipelihara, dan mudah difahami.