【C语言】探秘神奇的“文件”世界 |
您所在的位置:网站首页 › C语言fgetc能读取空格吗 › 【C语言】探秘神奇的“文件”世界 |
大家好呀!今天就带你们一起探索一下C语言里的神秘世界——“文件”! 首先,我们要知道,“文件”是C语言中用来存储和操作数据的重要工具。就像二次元世界里的魔法书一样,文件能够记录各种各样的信息,是程序员们的得力助手。 文件可以分为两大类:文本文件和二进制文件。文本文件就像是我们日常生活中的小说、漫画,能够以纯文本的形式存储和读取信息。而二进制文件则更加神奇,它可以保存任何形式的数据,就像是一本充满了各种魔法咒语的书! 文件指针 文件指针是一个特殊的指针,它用于指向文件中的某个位置。我们可以使用文件指针来读取和写入文件。 指向文件有关信息(包括文件名、状态和当前位置,保存在一个结构体变量中)的指针 在使用文件之前,需要在内存中为其分配空间,用来存放文件的基本信息。 在编写程序时,可直接使用“FILE”类型来定义变量。 文件的打开和关闭 为了能够操作这些神奇的“文件”,C语言提供了一些强大的函数供我们使用。比如,我们可以使用fopen()函数来打开一个文件并返回一个文件指针,就像是拿到了一把魔法笔;fclose()函数能够关闭文件,就像是把魔法书收进了书架;而fprintf()和fscanf()函数则是我们的神奇魔力,可以用来向文件写入数据和从文件中读取数据。 那么,让我们来看看一个简单的例子吧!假设我们要创建一个文本文件,并向其中写入一些信息。首先,我们需要使用`fopen()`函数来打开文件,像这样: FILE *file = fopen("magic.txt", "w");或者 FILE *fp; //fp是一个指向FILE类型的指针变量 fp = fopen("magic.txt", "w"); //文件名,使用文件方式这里,我们使用了fopen()函数来创建一个名为"magic.txt"的文件,并指定了写入模式("w")。接着,我们可以使用fprintf()函数向文件中写入一些内容,就像是用魔法笔书写咒语一样: fprintf(file, "Hello, File World!");最后,别忘了使用fclose()函数来关闭文件,就像是把魔法书放回书架一样: fclose(file);fclose函数也带回一个值,当正常完成关闭文件操作时,返回值为0,否则返回EOP。 在程序结束之前应关闭所有文件,目的是防止因为没有关闭文件而造成的数据流失。 C语言中,EOF是个宏,在stdio.h文件中进行定义: #define EOF (-1) 即:EOF就是整型数-1。(返回EOF即返回整形数-1) 有了这些魔法函数,我们就能够轻松地操作文件啦!不论是读取数据、写入数据,还是对文件进行其他操作,都可以通过这些函数来实现。 使用文件方式 ‘r’:只读。该文件必须已存在。打开一个文本文件,只允许读数据。 ‘w’:只写。打开或建立一个文本文件,只允许写数据。 ‘r+’:可读可写。该文件必须已存在,写为追加在文件内容末尾。 ‘rb’:只读。打开一个二进制文件,只允许读数据。 ‘w+’:写读。打开创建新文件并写入数据,如果文件已存在,则覆盖写。 ‘wb’:打开或建立一个二进制文件,只允许写数据。 ‘a’:追加写。若打开的是已有文件则直接对已有文件操作,若打开文件不存在则创建新文件,只能执行写(追加在后面),不能读。 ‘a+’:追加读写。打开文件方式与写入方式和'a'一样,但是可以读。需注意的是你若刚用‘a+’打开一个文件,一般不能直接读取,因为此时光标已经是文件末尾,除非你把光标移动到初始位置或任意非末尾的位置。 文件的读写 概述 字符(每次只读一个):fputc,fgetc, 字符串:fputs,fgets, 读写磁盘文件:fprintf,fscanf, 对整块数据进行读写:fread,fwrite, 在C语言中,我们可以使用一些函数来进行文件的读写操作。这些函数可以让我们从文件中读取数据,或者将数据写入到文件中。下面是一些常用的函数。 1. fputc和fgetc函数: #include int main() { FILE *fp; char c; // 打开文件 fp = fopen("file.txt", "w"); // 写入数据到文件 fputc('H', fp); fputc('e', fp); fputc('l', fp); fputc('l', fp); fputc('o', fp); // 关闭文件 fclose(fp); // 打开文件 fp = fopen("file.txt", "r"); // 从文件中读取数据并输出 while ((c = fgetc(fp)) != EOF) { printf("%c", c); } // 关闭文件 fclose(fp); return 0; }在这个例子中,我们使用了fputc函数将字符逐个写入到文件中,然后使用fgetc函数从文件中逐个读取字符并输出。这样,我们就实现了文件的写入和读取。 一般形式: ch = fputc(要输出的字符,fp); ch = fgetc(fp); //从fp指向的文件读入一个字符赋值给ch 2. fputs和fgets函数: #include int main() { FILE *fp; char str[100]; // 打开文件 fp = fopen("file.txt", "w"); // 写入数据到文件 fputs("Hello, world!", fp); // 关闭文件 fclose(fp); // 打开文件 fp = fopen("file.txt", "r"); // 从文件中读取数据并输出 fgets(str, 100, fp); printf("%s", str); // 关闭文件 fclose(fp); return 0; }在这个例子中,我们使用了fputs函数将字符串写入到文件中,然后使用fgets函数从文件中读取字符串到字符数组中并输出。这样,我们就实现了文件的写入和读取。 一般形式: fputs(字符串,文件指针); fgets(字符数组名,n,文件指针); //n表示所得到的字符串中字符的个数,包括'\0' 3. fprintf和fscanf函数: #include int main() { FILE *fp; int num1 = 10, num2; // 打开文件 fp = fopen("file.txt", "w"); // 写入数据到文件 fprintf(fp, "%d", num1); // 关闭文件 fclose(fp); // 打开文件 fp = fopen("file.txt", "r"); // 从文件中读取数据并输出 fscanf(fp, "%d", &num2); printf("%d", num2); // 关闭文件 fclose(fp); return 0; }在这个例子中,我们使用了fprintf函数将整数写入到文件中,然后使用fscanf函数从文件中读取整数并输出。这样,我们就实现了文件的写入和读取。 一般形式: ch = fprintf(文件类型指针,格式字符串,输出列表); fscanf(文件类型指针,格式字符串,输入列表); 4. fread和fwrite函数: #include int main() { FILE *fp; int arr1[5] = {1, 2, 3, 4, 5}; int arr2[5]; // 打开文件 fp = fopen("file.txt", "wb"); // 写入数据到文件 fwrite(arr1, sizeof(int), 5, fp); // 关闭文件 fclose(fp); // 打开文件 fp = fopen("file.txt", "rb"); // 从文件中读取数据并输出 fread(arr2, sizeof(int), 5, fp); for (int i = 0; i < 5; i++) { printf("%d ", arr2[i]); } // 关闭文件 fclose(fp); return 0; }在这个例子中,我们使用了fwrite函数将整型数组写入到文件中,然后使用fread函数从文件中读取整型数组并输出。这样,我们就实现了文件的写入和读取。 一般形式: fread(buffer,size,count,fp); //从fp所指的文件中读入count次,每次读size字节,读入的信息存在buffer地址中。 fwrite(buffer,size,count,fp); 注:buffer是一个指针 通过这些函数,我们可以轻松地实现文件的读写操作。掌握了这些知识,我们就能更好地处理文件相关的任务了。 文件的定位 概述 fseek 移动文件内部位置指针。 rewind 定位文件指针,使位置指针重新返回文件的开头,无返回值。 ftell 得到流式文件中的当前位置,用相对于文件开头的位移量表示。 当然啦,这只是C语言文件世界的冰山一角。在这个神奇的世界里,还有很多其它的函数和技巧等待着我们去探索。 以上就是今天的分享啦!希望小伙伴们可以对C语言中的“文件”有更深入的了解。如果你对这个话题感兴趣的话,不妨多多研究一下,相信你会发现更多有趣的东西哦!记得多多关注我哟,我们下次再见!么么哒~(づ ̄3 ̄)づ╭❤~ |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |