视频加载失败

如何用C语言进行文件读写

1007 字
5 分钟
如何用C语言进行文件读写

本文原载博客园(2020-04-19,SZ54「技术宅一枚」),2026-09 搬运至 ZipperBlog。原文链接

如何用C语言进行文件读写#

一:打开文件、关闭文件#

函数:fopen();

包含头文件:stdio.h

声明:FILE * fopen(const char *filename,const char *mode);

参数一:文件流

参数二:文件打开模式

文件打开模式参考如下:
模式操作区别要求
r从文件头开始文件须存在。
r+读写从文件头开始文件须存在。
w从文件头开始若文件存在,则减其长度截为零;若不存在,则创建文件。
w+读写从文件头开始若文件存在,则将其长度截为零;如不存在,则创建文件。
a从文件末尾开始若文件存在,则从文件末尾开始添加;若不存在,则创建文件。
a+读写从文件末尾开始若文件存在,则可以读取整个文件,但只能在文件末尾添加;若不存在,则创建文件。

函数:fclose();

包含文件头:stdio.h

声明:int fclose(FILE *file);

参数一:文件流

代码示例:

#include<stdio.h>
int main(void)
{
  FILE *fp;
  fp = fopen("a.txt","r");
  if(fp == NULL)
  {
    printf("error!");
    return 0;
  }
  fclose(fp)
  return 0;
}

二:文件写入#

1、字符写入#

函数:fputc();

包含文件头:stdio.h

声明:int fputc(char c,FILE *file)

参数一:写入字符

参数二:文件流

代码示例:

#include<stdio.h>
int main(void)
{
   FILE *fp = fopen("a.txt", "w");
   if(fp == NULL)
  {
     printf("error!\n");
     return 0;
   }
   char name[] = "Hello World!";
   int i;
   for(i = 0; i < strlen(name); i++)
   {
     fputc(name[i], fp);
   }
   fputc('\n', fp);
   fclose(fp);
   return 0;
}

2、字符串写入#

函数:fputs();

包含头文件:stdio.h

声明:int fputs(char *s,FILE *file);

参数一:写入字符串

参数二:文件流

代码示例:

#include<stdio.h>
int main(void)
{
   FILE *fp = fopen("a.txt", "w");
   if(fp == NULL)
   {
    printf("error!\n");
     return 0;
   }
   char name[] = "Hello Word!\n";
   fputs(name, fp);
   fclose(fp);
   return 0;
}

3、数据块写入#

函数:fwrite();

包含头文件:stdio.h

声明:size_t fwrite(count void *ptr,size_t size,size_t nmemb,FILE *file);

参数一:写入数据地址

参数二:写入数据单字节数

参数三:写入项目个数

参数四:文件流

#include<stdio.h>
int main(void)
{
   FILE *fp = fopen("a.txt", "wb+");
   if(fp == NULL)
   {
     printf("error!\n");
     return 0;
   }
   char name[] = "Hello World!\n";
   fwrite(name, strlen(name), 1, fp);
   fclose(fp);
   return 0;
}

4、格式化写入#

函数:fprintf();

包含头文件:stdio.h

声明:int fprintf(FILE *file,count char *format,…);

参数一:文件流

参数二:指定格式控制字符串

参数三:输出项

注:用法与printf();函数类似

代码示例:

#include<stdio.h>
int main(void)
{
   FILE *fp = fopen("a.txt", "wb+");
   if(fp == NULL)
   {
     printf("error!\n");
     return 0;
   }
   char name[] = "Hello World!\n";
   fprintf(fp, "this is %s\n", name);
   fclose(fp);
   return 0;
}

三:文件读取#

1、字符读取#

函数:fgetc();

包含头文件:stdio.h

声明:int fgetc(FILE *file);

参数一:文件流

代码示例:

#include<stdio.h>
int main(void)
{
   FILE *fp = fopen("a.txt", "r");
   if(fp == NULL)
   {
     printf("error!\n");
     return 0;
   }
   char c;
   while((c = fgetc(fp)) != EOF)
   {
     printf("%c", c);
   }
   fclose(fp);
   return 0;
}

2、字符串读取#

函数:fgets();

包含头文件:stdio.h

声明:char *fgets(char *buf,int bufsize,FILE *file);

参数一:储存读取数据

参数二:储存数据大小

参数三:文件流

代码示例:

#include <stdio.h>
int main()
{
FILE *fp = fopen("a.txt", "r");
if(fp == NULL)
{
printf("error!\n");
return 0;
}
char buf[1024] = {0};
while(fgets(buf, 1024, fp) != NULL)
{
printf("%s", buf);
}
fclose(fp);
return 0;
}

3、数据块读取#

函数:fread();

包含头文件:stdio.h

声明:size_t fread(count void *str,size_t size,size_t count,FILE *file);

参数一:储存读取数据

参数二:要读取数据的字节数

参数三:要读取数据项

参数四:文件流

代码示例:

#include <stdio.h>
int main()
{
FILE *fp = fopen("a.txt", "r");
if(fp == NULL)
{
printf("error!\n");
return 0;
}
char buf[102400] = {0};
fread(buf, 1024, 100, fp);
printf("%s", buf);
fclose(fp);
return 0;
}

4、格式化读取#

函数:fscanf();

包含头文件:sdtio.h

声明:int fscanf(FILE *file,count char *format,…);

参数一:文件流

参数二:读取格式

参数三:读取输入项

代码示例:

#include <stdio.h>
int main()
{
FILE *fp = fopen("a.txt", "r");
if(fp == NULL)
{
printf("error!\n");
return 0;
}
char buf[1024] = {0};
fscanf(fp, "%s", buf);
printf("%s\n", buf);
fclose(fp);
return 0;
}

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

如何用C语言进行文件读写
https://zipper.net.cn/posts/c-file-io/
作者
SZ54
发布于
2020-04-19
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
SZ54
程序员,正在成长。
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
站点统计
文章
5
分类
3
标签
9
总字数
4,922
运行时长
0
最后活动
0 天前
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.7
文章许可
CC BY-NC-SA 4.0
文章目录