文件读写函数

文件读写函数简单来说 就是 fopen 函数接收文件名和打开模式两个参数 都是字符串类型所以用 constchar 返回一种叫流 steam 的东西 即 FILE 类型 打开失败返回空指针

大家好,欢迎来到IT知识分享网。

1.fopen和fclose

 文件读写函数

        简单来说,就是fopen函数接收文件名和打开模式两个参数(都是字符串类型所以用const char *),返回一种叫流(steam)的东西,即(FILE *类型),打开失败返回空指针。我觉得可以把流理解为文件指针类型,因为感觉和指针很像。
        fclose函数就是释放这种流,取消文件和流的关联,如果打开成功,返回0值,如果失败,返回EOF(通常为-1)。

#include <stdio.h> #include <stdlib.h> int main() { FILE *pFile = fopen("D:\\test.txt", "w"); // 以写入模式打开文件 if (pFile != NULL) { fclose(pFile); // 关闭文件 } else { printf("Failed to open file\n"); // 打开文件失败时输出错误信息 } return 0; }

代码中fopen中文件名可以写同工程下的文件名,也可以写绝对路径,记得使用反斜杠转义字符。

fopen的打开方式有很多中,这里放一张图片:

文件读写函数

2.fgetc和fputs

文件读写函数

文件读写函数

#include <stdio.h> int main() { char c,b; FILE *file= fopen("D:\\test.txt", "w"); if (file == NULL) { return -1; } for (b = 'A' ; b <= 'Z' ; b++) fputc ( b , file ); /*while ((c = fgetc(file)) != EOF) { putchar(c); }*/ fclose(file); return 0; } 

在代码中,for循环用于向文件中写字符,while循环用于从文件中读取字符,但要注意文件的读取模式是 r 还是 w 。

3.fgets和fputs

文件读写函数

文件读写函数

#include <stdio.h> int main() { FILE * pFile; char mystring [100]; pFile = fopen ("D:\\test.txt" , "r"); if (pFile == NULL){ return -1; } else { if ( fgets (mystring , 100 , pFile) != NULL ) printf(mystring); fclose (pFile); } return 0; }
int main() { FILE * pFile; char mystring [100]="abcde"; pFile = fopen ("D:\\test.txt" , "w"); if (pFile == NULL){ return -1; } else { while (fputs(mystring,pFile) != EOF) { printf("OK"); break; } } return 0; } 

上面分别为读和写的代码。

3.fscanf和fprintf

文件读写函数

文件读写函数

        fscanf和fprintf与fgets,fputs的区别就是格式化输入输出,后面的省略号…就是数据的格式,
其中fscanf函数是从文件中读取,fprintf函数是向文件中写入。
那么如何体现格式化呢:

int num; float value; char ch, str[50]; // 从文件中读取整数、浮点数、字符和字符串 fscanf(fp, "%d", &num); fscanf(fp, "%f", &value); fscanf(fp, " %c", &ch); // 注意空格,防止读取换行符 fscanf(fp, "%s", str); // 向文件中写入整数、浮点数、字符和字符串 fprintf(fp, "整数:%d\n", num); fprintf(fp, "浮点数:%f\n", value); fprintf(fp, "字符:%c\n", ch); fprintf(fp, "字符串:%s\n", str); 

展示一下运行结果 :记住fscanf函数读取时要和文件中的格式一模一样,包括空格回车

文件读写函数 

文件读写函数

4.fread和fwrite

文件读写函数

文件读写函数首先说明一下:size_t就是 unsigned int 无符号整形
        fread是把元素大小为size,元素个数为count的数组,从文件中读取,放进ptr地址处,所以ptr可以是数组名。fwrite则相反,把数组的元素放进文件中。
文件读写函数

可以看到二进制的存储我们是看不懂的,但是可以正常读取打印。

文章中的代码都没有最后把FIILE *类型的变量置为NULL,不大妥当,在这里补充一下。

这就是文章的全部内容,希望对你有所帮助,如有错误欢迎评论。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/120179.html

(0)
上一篇 2025-10-31 14:15
下一篇 2025-10-31 14:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信