【C语言】常见文件操作

d65eff8a-9c1d-4586-ad1f-3c5ddde8412f
在这里插入图片描述
在这里插入图片描述
文件的常见操作

#include<stdio.h> // 由于devc++代码编码为ANCI,故读取的文件中若有中文,请设置文件编码为ANCI,否则会乱码 // 读文件 void test1() { char ch; FILE *fp; // 创建文件指针 fp = fopen("./file.txt", "r"); // 读取文件 while((ch=fgetc(fp))!= EOF) { // 访问文件中数据 putchar(ch); //输出文件中字符 } fclose(fp); // 关闭文件 } // 写单个字符到文件中 void test2() { char ch; FILE *fp; // 创建文件指针 fp = fopen("./file.txt", "r+"); if (fp == NULL) { perror("Failed to open file"); return; } // fputc(): 写单个字符 fputc('a', fp); rewind(fp); // 将文件指针移动到文件开头 while ((ch = fgetc(fp)) != EOF) { // 访问文件中数据 putchar(ch); // 输出文件中字符 } fclose(fp); // 关闭文件 } // 写一个字符串到文件 void test3() { char in[50], out[50]; FILE *fp = fopen("./file.txt", "w+"); // w+每次都会清空文件重新写 // 写入文件 gets(in); fputs(in, fp); // 读取文件,首先将文件指针移动到文件头 rewind(fp); fgets(out, 50, fp); puts(out); fclose(fp); // 关闭文件 } // 格式化写入文件 void test4() { int i = 3; float f = 4.50; FILE *fp = fopen("./file.txt", "w+"); fprintf(fp, "%d, %6.2f",i,f); // 格式化写入文件 fscanf(fp, "%d, %f", i, f); printf("%d %f",i ,f); fclose(fp); // 关闭文件 } // 二进制读写文件 void test5() { float arr[5] = {1,2,3,4,5}; float res[5]; FILE *fp = fopen("./file.dat", "wb+"); // ------注意这里使用是wb+才可以对二进制文件操作 // 向文件写入一个数据块 arr是float类型的数组,每个元素占4字节,总共十个元素 // 这里表示把整个数组都写入文件中 fwrite(arr, sizeof(float), 5,fp); rewind(fp); // 从文件中读取一个数据块 fread(res, sizeof(float), 5, fp); // 输出一下文件中内容,也就是res数组中读取的内容 for (int i=0; i<5; i++) { printf("%f ", res[i]); } fclose(fp); // 关闭文件 } int main() { // test1(); // test2(); // test3(); // test4(); test5(); return 0; }

__EOF__

本文作者lnnau
本文链接https://www.cnblogs.com/wlunan/p/18537984.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Lnnau  阅读(14)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示