C语言文件函数

C语言文件

学习文件操作,主要学习4大主要函数:
a)打开文件 函数 :fopen
b)关闭文件 函数 :fclose
c)读文件 函数 :fread
d)写文件 函数 :fwrite




一、fopen和fclose函数

1、fopen函数:建立1个FILE指针,连接到文件上 例1-1
函数原型:FILE * fopen ( const char * filename, const char * mode );
参数:
filename:指定绝对路径或者相对路径的文件名。
mode:分别指定
如果是成功打开,返回非空;如果打开文件失败,返回NULL;
“r”:当文件存在返回有效文件指针,当文件不存在返回空指针。
“w”:如果文件不存在,创建文件。如果文件存在,清空该文件重新写内容。(fwrite)
“a”:如果文件不存在,创建文件。如果文件存在,不清空原有内容,在原有内容后面追加内容。(fwrite)
当文件不可以写入时,包括文件只读,或者被另一个进程占用。
"w"和"a"都会返回空指针。
返回值:FILE
文件指针类型,可以认为是驾驶员的手柄,把文件操作比作对汽车驾驶
2、fclose:断开FILE*文件指针和文件的连接。例1-1
函数原型:int fclose ( FILE * stream );

//例子1-1
#include <stdio.h>
int main ()
{
  FILE * pFile;
  pFile = fopen ("myfile.txt","w");
  if (pFile!=NULL)
  {
    fputs ("fopen example",pFile);
    fclose (pFile);
  }
  return 0;
}

二、fwrite和fread函数

1、fwrite四个参数简介:size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );
a)第一个参数是内存地址,第四个参数是磁盘关联文件的句柄。
b)中间两个参数,C语言设计的模式是按照数组的格局,比如:double 数组或者结构体数组。

1.1、fwrite:调用fwrite必须是使用"w"或者"a"模式打开。
memcpy是将一段缓冲区的内容复制到另一段缓冲区上。
fwrite是将一段缓冲区的内容复制到磁盘文件上。
fread是将磁盘上的内容读取到一段缓冲区上;

2、fread四个参数简介:size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );
a)第一个参数是输出型参数,必须带入内存变量区(全局区,栈区,堆区等)
b))中间两个参数,C语言设计的模式是按照数组的格局,比如:double 数组或者结构体数组。

2、扩展模式:
t:缺省时text模式。不推荐使用
b:二进制模式。推荐使用。
3、其他读写模式:
“r+”:可读可写.主要特征和失败原因同r模式。
“w+”:可读可写.主要特征和失败原因同w模式。
“a+”:可读可写.主要特征和失败原因同a模

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>

int main()
{
	FILE* pFile;
	char buffer[100];
	printf("请输入一些文字:");
	scanf("%s", buffer );
	pFile = fopen("myfile.txt", "wb");  //文件指针(句柄 关联一个事物c的指针)
	fwrite(buffer, sizeof(char), (int)strlen(buffer), pFile);  //sizeof 死数组  strlen内部是个循环往后找
	//单个 元素个数
	fclose(pFile);
	return 0;
}

2.b和t两种模式

二进制(b)和文本(t)两种模式对文件的读写,在多数情况下都是相同的。只有当对文本读写时才有一些区别,主要是因为Windows操作系统下换行符采用的是\r\n两个字符来实现的。
文本模式:写(或读)的字符与文件上的字符可能不是一对一的关系
二进制模式:写(或读)的字符与文件上的字符是一对一的关系。
因此,推荐使用二进制模式进行读写

3、文件名的路径:

a)绝对路径:在windows下,开头是盘符的就是绝对路径。
例如:D:\users\test\aaa.txt
b)相对路径:开头不是盘符
例如:“aaa.txt” 或者 “./aaa.txt” 或者 ./bbb/aaa.txt
./或不带.都代表当前执行文件的位置(工作目录)


其他C语言文件函数

1、fseek和rewind,ftell函数:
fseek:当在文件中读来读去时使用,移动文件读取地址
ftell:获取距离文件首地址的距离。
rewind:把文件读取地址强制移动到文件首地址:
可以fseek代替:fseek(fp,0,SEEK_SET)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jcrry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值