2024-2025 20241323第十四周学习总结

这个作业属于https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP
这个作业要求https://www.cnblogs.com/rocedu/p/9577842.html#WEEK01
这个作业的目标了解C语言中的文件操作
作业正文https://www.cnblogs.com/rocedu/p/9577842.html#WEEK01

教材学习内容总结
1.文件操作的基本概念 - 在C语言中,文件被看作是字节序列。文件可以是存储在磁盘等存储设备上的数据集合,例如文本文件(存储字符数据)和二进制文件(存储以二进制格式表示的数据)。通过文件操作,可以从文件中读取数据,也可以将数据写入文件,这使得程序能够持久化数据,在不同的程序运行期间共享和保存信息。
2.文件指针** - 文件指针是C语言中用于操作文件的关键概念。它是一个指向FILE类型结构的指针,FILE结构在<stdio.h>头文件中定义。这个结构包含了文件的各种信息,如文件缓冲区的当前位置、文件的打开模式等。 - 例如,定义一个文件指针fpFILE *fp;。在打开文件后,这个指针将用于访问和操作文件的内容。
3.文件的打开和关闭 - 打开文件 - 函数fopen()用于打开文件。它的原型为FILE * fopen(const char * filename, const char * mode);。其中filename是要打开的文件名(可以包含文件路径),mode是文件的打开模式。 - 打开模式有多种,例如: - "r":以只读方式打开文本文件。文件必须存在,否则打开失败。 - "w":以只写方式打开文本文件。如果文件不存在,则创建一个新文件;如果文件存在,则清空文件内容。 - "a":以追加方式打开文本文件。如果文件不存在,则创建一个新文件;如果文件存在,则在文件末尾追加内容。 - "rb""wb""ab":分别是以只读、只写、追加方式打开二进制文件。 - 示例:fp = fopen("test.txt", "r");,这行代码尝试以只读方式打开当前目录下名为test.txt的文本文件,并将文件指针fp指向该文件。如果打开成功,fp就可以用于后续的文件读取操作;如果打开失败,fp的值将为NULL。 - 关闭文件 - 函数fclose()用于关闭文件。它的原型为int fclose(FILE * stream);。关闭文件是一个良好的编程习惯,它可以释放文件相关的资源,如缓冲区等。 - 示例:fclose(fp);,其中fp是之前打开文件时得到的文件指针。当程序不再需要对文件进行操作时,应该及时关闭文件。如果关闭成功,fclose()函数返回0;如果出现错误,返回EOF(通常定义为-1)。
4.文件的读取操作 - 字符读取 - 函数fgetc()用于从文件中读取一个字符。它的原型为int fgetc(FILE * stream);。它从文件指针stream所指向的文件中读取一个字符,并返回该字符的ASCII码值。如果读取到文件末尾或者出现错误,返回EOF。 - 示例: c FILE *fp; int ch; fp = fopen("test.txt", "r"); if(fp!= NULL) { ch = fgetc(fp); while(ch!= EOF) { putchar(ch); ch = fgetc(fp); } fclose(fp); } 在这个示例中,首先打开文件test.txt,然后使用fgetc()函数逐个字符地读取文件内容,通过循环将读取到的字符输出到控制台,直到遇到文件末尾(EOF),最后关闭文件。 - 字符串读取 - 函数fgets()用于从文件中读取一个字符串。它的原型为char * fgets(char * str, int n, FILE * stream);。它从文件指针stream所指向的文件中读取最多n - 1个字符,并将其存储到str所指向的字符数组中。读取的字符串会在末尾自动添加'\0'作为字符串结束标志。如果在读取n - 1个字符之前遇到换行符'\n'或者文件末尾EOF,则读取操作结束。 - 示例: c FILE *fp; char str[100]; fp = fopen("test.txt", "r"); if(fp!= NULL) { fgets(str, 100, fp); printf("%s", str); fclose(fp); } 这里打开文件test.txt,使用fgets()函数读取最多99个字符(因为要预留一个字节给'\0')并存储到str数组中,然后将读取到的字符串输出到控制台,最后关闭文件。 - 格式化读取 - 函数fscanf()用于从文件中按照格式化的方式读取数据。它的原型为int fscanf(FILE * stream, const char * format,...);。它的功能类似于scanf()函数,但是是从文件而不是从标准输入读取数据。 - 示例:假设test.txt文件中包含一些整数,每行一个整数。 c FILE *fp; int num; fp = fopen("test.txt", "r"); if(fp!= NULL) { while(fscanf(fp, "%d", &num) == 1) { printf("%d ", num); } fclose(fp); } 这个示例中,通过fscanf()函数从文件中读取整数,每次成功读取一个整数就将其输出到控制台,直到读取操作无法按照指定格式读取到数据(可能是遇到文件末尾或者数据格式错误)。
5.文件的写入操作 - 字符写入 - 函数fputc()用于向文件中写入一个字符。它的原型为int fputc(int c, FILE * stream);。其中c是要写入的字符(可以是字符的ASCII码值),stream是文件指针。如果写入成功,返回写入的字符;如果出现错误,返回EOF。 - 示例: c FILE *fp; char ch = 'A'; fp = fopen("test.txt", "w"); if(fp!= NULL) { fputc(ch, fp); fclose(fp); } 这个示例打开一个新文件(如果文件已存在则清空内容)test.txt,然后使用fputc()函数向文件中写入字符'A',最后关闭文件。 - 字符串写入 - 函数fputs()用于向文件中写入一个字符串。它的原型为int fputs(const char * str, FILE * stream);。它将str所指向的字符串写入到文件指针stream所指向的文件中,但不包括字符串结束标志'\0'。如果写入成功,返回一个非负整数;如果出现错误,返回EOF。 -
示例: c FILE *fp; char str[] = "Hello, World!"; fp = fopen("test.txt", "w"); if(fp!= NULL) { fputs(str, fp); fclose(fp); } 这里打开文件test.txt(如果存在则清空),使用fputs()函数将字符串"Hello, World!"写入文件,最后关闭文件。

  • 格式化写入 - 函数fprintf()用于向文件中按照格式化的方式写入数据。它的原型为int fprintf(FILE * stream, const char * format,...);。它的功能类似于printf()函数,但是是将数据写入文件而不是输出到标准输出。 -
    示例: c FILE *fp; int num = 10; fp = fopen("test.txt", "w"); if(fp!= NULL) { fprintf(fp, "The number is %d", num); fclose(fp); } 这个示例打开文件test.txt(如果存在则清空),使用fprintf()函数将格式化后的字符串"The number is 10"写入文件,最后关闭文件。
posted @   小苟不是狗  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示