fopen的使用

1, fopen() 的使用,在linux环境下,我们可以使用man fopen查看使用说明:

#include <stdio.h>

FILE *fopen(const char *path, const char *mode);

path 是指文件路径。

mode 含义如下:

r 只读方式打开一个文本文件,流指向文件头

w 只写方式打开一个文本文件,流指向文件头。若文件存在,就清空内容

a 追加方式打开一个文本文件,流指向文件尾。若文件不存在,就新建一个

r+ 可读可写方式打开一个文本文件,流指向文件头

w+ 可读可写方式创建一个文本文件,流指向文件头。若文件存在,就清空内容。

a+ Open for reading and appending (writing at end of file)。可读可写打开一个文本文件,读文件时,流指向文件头;写文件时,流指向文件尾。

rb,wb,ab,rb+,wb+,ab+这6种方式和上述类似,只是打开的是2进制文件。

  1. 对于流的指向位置,可以通过fseek() 函数来设置。

#include int fseek(FILE *stream, long offset, int whence);

offset: 是指偏移字节数,单位是字节。

whence:偏移起始位置,参数如下:

文件头0(SEEK_SET) 当前位置1(SEEK_CUR), 文件尾2(SEEK_END)

  1. 函数名: fwrite

头文件:<stdio.h>

功 能: 写内容到流中,从指针ptr开始把n个数据项添加到给定输出流stream,每个数据项的长度为size个字节。

函数原型: int fwrite(void *ptr, int size, int nitems, FILE *stream);

参 数:void *ptr 要写入的内容

       int size       要写入字符的长度

       int nitems     要写入字符的数量

       FILE *stream   要写入的文件流

返回值:成功 返回确切的数据项数(不是字节数),失败出错 返回短(short)计数值。可能是0

举例如下:

fseek(fp,-1L*sizeof(char),SEEK_END);

实列:

char *BB = "hello\n";

FILE *pFile;
pFile = fopen(FILE_PATH, "wb+");
if (!pFile)
{
	printf("fopen file : %s failed \n", FILE_PATH);
	return -1;
}

fwrite(BB, sizeof(BB), 1, pFile );
fflush(pFile );  // 刷新缓存区

fclose(pFile );

注: fflush()的作用是用来刷新缓冲区,fflush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃; fflush(stdout)刷新标准输出缓冲区,把输出缓冲区里的东西强制打印到标准输出设备上。
fflush(stdin)不太常用,在有些编译器中是错误的用法,可以用以下方法替代:while(getchar()!=’/n’);
fflush(stdout)在单进程程序中作用不大,但在多进程程序中很有用。程序的输出内容一般不会立即输出,而是在程序结束后再输出。fflush(stdout)会强制每次printf()都立即显示在标准输出设备上。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
fopen 函数是 C 语言中用来打开文件的函数,其原型为: ```c FILE* fopen(const char* filename, const char* mode); ``` 其中,filename 为文件名(包括路径),mode 为打开文件的模式。mode 的取值有: - "r":只读模式,文件必须存在; - "w":只写模式,如果文件不存在则创建文件,如果存在则清空文件内容; - "a":追加模式,如果文件不存在则创建文件,如果存在则在文件末尾追加内容; - "rb"、"wb"、"ab":以上三种模式的二进制形式,适用于非文本文件的读写操作; - "r+":读写模式,文件必须存在; - "w+":读写模式,如果文件不存在则创建文件,如果存在则清空文件内容; - "a+":读写模式,如果文件不存在则创建文件,如果存在则在文件末尾追加内容; - "rb+"、"wb+"、"ab+":以上三种模式的二进制形式,适用于非文本文件的读写操作。 fopen 函数成功打开文件后,会返回一个 FILE 类型的指针,指向文件的位置信息等数据。如果打开文件失败,则返回 NULL。 下面是一个使用 fopen 函数打开文件并写入内容的示例代码: ```c #include <stdio.h> int main() { FILE* fp; char str[] = "Hello, world!\n"; fp = fopen("test.txt", "w"); if (fp == NULL) { printf("Failed to open file.\n"); return 1; } fputs(str, fp); fclose(fp); return 0; } ``` 在上面的代码中,我们使用 fopen 函数打开一个名为 test.txt 的文件,并以只写模式打开。如果文件打开成功,则将字符串 "Hello, world!\n" 写入文件中,最后关闭文件。如果文件打开失败,则输出一条错误信息并退出程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值