Rumah pembangunan bahagian belakang Tutorial C#.Net c语言文件读写操作有哪些?

c语言文件读写操作有哪些?

Jul 27, 2020 pm 01:44 PM
c bahasa

c语言文件读写操作有:1、读写文件中字符的函数,代码为【int fgetc(FILE *stream)】;2、读写文件中字符串的函数,代码为【int fputs(char *string,FILE *stream)】。

c语言文件读写操作有哪些?

c语言文件读写操作有:

1.文件的打开函数fopen()

文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程序就可用此FILE指针来实现对指定文件的存取操作了。当使用打开函数时,必须给出文件名、文件操作方式(读、写或读写),

如果该文件名不存在,就意味着建立(只对写文件而言,对读文件则出错),并将文件指针指向文件开头。若已有一个同名文件存在,则删除该文件,若无同名文件,则建立该文件,并将文件指针指向文件开头。

fopen(char *filename,char *type);
Salin selepas log masuk

其中*filename是要打开文件的文件名指针,一般用双引号括起来的文件名表示,也可使用双反斜杠隔开的路径名。而*type参数表示了对打开文件的操作方式。其可采用的操作方式如下:

  • 含义 "r" 打开,只读;

  • "w" 打开,文件指针指到头,只写;

  • "a" 打开,指向文件尾,在已存在文件中追加;

  • "rb" 打开一个二进制文件,只读;

  • "wb" 打开一个二进制文件,只写;

  • "ab" 打开一个二进制文件,进行追加 ;

  • "r+" 以读/写方式打开一个已存在的文件;

  • "w+" 以读/写方式建立一个新的文本文件 ;

  • "a+" 以读/写方式打开一个文件文件进行追加 ;

  • "rb+" 以读/写方式打开一个二进制文件;

  • "wb+" 以读/写方式建立一个新的二进制文件 ;

  • "ab+" 以读/写方式打开一个二进制文件进行追加 ;

当用fopen()成功的打开一个文件时,该函数将返回一个FILE指针,如果文件打开失败,将返回一个NULL指针。

2.关闭文件函数fclose()

文件操作完成后,必须要用fclose()函数进行关闭,这是因为对打开的文件进行写入时,若文件缓冲区的空间未被写入的内容填满,这些内容不会写到打开的文件中去而丢失。只有对打开的文件进行关闭操作时,停留在文件缓冲区的内容才能写到该文件中去,从而使文件完整。

再者一旦关闭了文件,该文件对应的FILE结构将被释放,从而使关闭的文件得到保护,因为这时对该文件的存取操作将不会进行。文件的关闭也意味着释放了该文件的缓冲区。

int fclose(FILE *stream);
Salin selepas log masuk

它表示该函数将关闭FILE指针对应的文件,并返回一个整数值。若成功地关闭了文件,则返回一个0值,否则返回一个非0值。

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main()
{
    FILE *fp;   //  头文件#include <stdio.h>
    if((fp=fopen("123.txt","w"))==NULL)
    {
        printf("file cannot open \n");
        //exit(0);  头文件#include <stdlib.h>
        //exit结束程序,一般0为正常推出,其它数字为异常,其对应的错误可以自己指定。
    }
    else
        printf("file opened for writing \n");
    if(fclose(fp)!=0)
        printf("file cannot be closed \n");
    else
        printf("file is now closed \n");
    return 0;
}
Salin selepas log masuk

3.文件的读写

(1).读写文件中字符的函数(一次只读写文件中的一个字符):

int fgetc(FILE *stream);
int getchar(void);
int fputc(int ch,FILE *stream);
int putchar(int ch);
int getc(FILE *stream);
int putc(int ch,FILE *stream);
Salin selepas log masuk

fgetc()函数将把由流指针指向的文件中的一个字符读出,例如: ch=fgetc(fp); 将把流指针fp指向的文件中的一个字符读出,并赋给ch,当执行fgetc()函数时,若当时文件指针指到文件尾,即遇到文件结束标志EOF(其对应值为-1),该函数返回一个-1给ch,在程序中常用检查该函数返回值是否为-1来判断是否已读到文件尾,从而决定是否继续。

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main()
{
    FILE *fp;
    char ch;
    if((fp=fopen("123.txt","r"))==NULL)
        printf("file cannot open \n");
    else
        printf("file opened for writing \n");
    while((ch=fgetc(fp))!=EOF)
        fputc(ch,stdout); //这里是输出到屏幕
    if(fclose(fp)!=0)
        printf("file cannot be closed \n");
    else
        printf("file is now closed \n");
    return 0;
}
Salin selepas log masuk

该程序以只读方式打开123.txt文件,在执行while循环时,文件指针每循环一次后移一个字符位置。用fgetc()函数将文件指针指定的字符读到ch变量中,然后用fputc()函数在屏幕上显示,当读到文件结束标志EOF时,关闭该文件。 上面的程序用到了fputc()函数,该函数将字符变量ch的值写到流指针指定的文件中去,由于流指针用的是标准输出(显示器)的FILE指针stdout,故读出的字符将在显示器上显示。又比如: fputc(ch,fp); 该函数执行结构,将把ch表示的字符送到流指针fp指向的文件中去。

在TC中,putc()等价于fputc(),getc()等价于fgetc()。 putchar(c)相当于fputc(c,stdout);getchar()相当于fgetc(stdin)。 注意,这里使用char ch,其实是不科学的,因为最后判断结束标志时,是看ch!=EOF,而EOF的值为-1,这显然和char是不能比较的。所以,某些使用,我们都定义成int ch

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main()
{
    FILE *fp;
    if((fp=fopen("123.txt","a"))==NULL)
        printf("file cannot open \n");
    else
        printf("file opened for writing \n");
    char ch=&#39;e&#39;;
    fputc(ch,fp); //输入到文件中
    if(fclose(fp)!=0)
        printf("file cannot be closed \n");
    else
        printf("file is now closed \n");
    return 0;
}
Salin selepas log masuk

(2).读写文件中字符串的函数

char *fgets(char *string,int n,FILE *stream);
char *gets(char *s);
int fprintf(FILE *stream,char *format,variable-list);
int fputs(char *string,FILE *stream);
char *puts(char *s);
int fscanf(FILE *stream,char *format,variable-list);
Salin selepas log masuk

其中fgets()函数将把由流指针指定的文件中n-1个字符,读到由指针string指向的字符数组中去,例如: fgets(buffer,9,fp); 将把fp指向的文件中的8个字符读到buffer内存区,buffer可以是定义的字符数组,也可以是动态分配的内存区。

注意,fgets()函数读到'/n'就停止,而不管是否达到数目要求。同时在读取字符串的最后加上'/0'。 fgets()函数执行完以后,返回一个指向该串的指针。如果读到文件尾或出错,则均返回一个空指针NULL,所以长用feof()函数来测定是否到了文件尾或者是ferror()函数来测试是否出错,

检测是否已到文件尾,是返回真,否则返回0,其原型是int feof(FILE *stream);

例:if(feof(fp))printf("已到文件尾");

原型是int ferror(FILE *stream);返回流最近的错误代码,可用clearerr()来清除它,clearerr()的原型是void clearerr(FILE *stream);

例:printf("%d",ferror(fp));

例如下面的程序用fgets()函数读test.txt文件中的第一行并显示出来:

#include "stdio.h" 
int main() {
    FILE *fp; 
    char str[128]; 
    if((fp=fopen("123.txt","r"))==NULL) {
        printf("cannot open file/n"); exit(1);
    } 
    while(!feof(fp)) {
        if(fgets(str,128,fp)!=NULL)
        printf("%s",str);
    }
    fclose(fp);
}
Salin selepas log masuk

相关学习推荐:C视频教程

Atas ialah kandungan terperinci 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 尊渡假赌尊渡假赌尊渡假赌

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.

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.

Apakah jenis nilai pulangan fungsi bahasa C? Ringkasan jenis nilai pulangan fungsi bahasa C? Apakah jenis nilai pulangan fungsi bahasa C? Ringkasan jenis nilai pulangan fungsi bahasa C? Apr 03, 2025 pm 11:18 PM

Jenis nilai pulangan fungsi bahasa C termasuk int, float, double, char, void dan jenis penunjuk. Int digunakan untuk mengembalikan bilangan bulat, terapung dan dua kali digunakan untuk mengembalikan terapung, dan char mengembalikan aksara. Kekosongan bermaksud bahawa fungsi tidak mengembalikan sebarang nilai. Jenis penunjuk mengembalikan alamat memori, berhati -hati untuk mengelakkan kebocoran ingatan. Struktur atau konsortium boleh mengembalikan pelbagai data yang berkaitan.

Konsep fungsi bahasa c dan format definisi mereka Konsep fungsi bahasa c dan format definisi mereka Apr 03, 2025 pm 11:33 PM

F Fungsi bahasa adalah blok kod yang boleh diguna semula, menerima parameter untuk pemprosesan, dan hasil pulangan. Ia sama dengan pisau tentera Swiss, berkuasa dan memerlukan penggunaan yang teliti. Fungsi termasuk unsur -unsur seperti menentukan format, parameter, nilai pulangan, dan badan fungsi. Penggunaan lanjutan termasuk penunjuk fungsi, fungsi rekursif, dan fungsi panggil balik. Kesalahan umum adalah jenis ketidakcocokan dan lupa untuk mengisytiharkan prototaip. Kemahiran penyahpepijatan termasuk pembolehubah percetakan dan menggunakan debugger. Pengoptimuman prestasi menggunakan fungsi dalam talian. Reka bentuk fungsi harus mengikuti prinsip tanggungjawab tunggal. Kemahiran dalam fungsi bahasa C dapat meningkatkan kecekapan pengaturcaraan dan kualiti kod.

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

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.

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

See all articles