文章目录
一、fopen函数
1.功能描述
用于打开或创建文件,在打开或创建文件时可以指定文件的属性及用户的权限等各种参数。
2.函数
所需头文件:
#include <stdio.h>
函数原型:
FILE *fopen(const char *filename, const char *mode) 使用给定的模式 mode 打开 filename 所指向的文件。
//返回值:该函数返回一个 FILE 指针。否则返回 NULL,且设置全局变量 errno 来标识错误。
参数:
filename – 这是 C 字符串,包含了要打开的文件名称。
mode – 这是 C 字符串,包含了文件访问模式,模式如下:
3.示例代码
代码如下(示例):
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE * fp;
fp = fopen ("file.txt", "w+");
fprintf(fp, "%s %s %s %d", "We", "are", "in", 2014);
fclose(fp);
return(0);
}
运行结果:
We are in 2014
二、fdopen函数
1.功能描述
将文件描述词转为文件指针
2.函数
所需头文件:
#include <stdio.h>
函数原型:
FILE * fdopen(int fildes, const char * mode);
//返回值:转换成功时返回指向该流的文件指针. 失败则返回NULL, 并把错误代码存在errno 中。
参数:
filename – 这是 C 字符串,包含了要打开的文件名称。
mode – 这是 C 字符串,包含了文件访问模式,
模式同fopen函数
3.示例代码
代码如下(示例):
暂无
三、freopen函数
freopen是被包含于C标准库头文件中的一个函数,用于重定向输入输出流。
1.功能描述
打开文件。
2.函数
所需头文件:
#include <stdio.h>
函数原型:
FILE *freopen(const char *filename, const char *mode, FILE *stream);
//返回值:如果成功,则返回该指向该输出流的文件指针,否则返回为NULL。
函数说明:
函数,以指定模式重新指定到另一个文件。模式用于指定新文件的访问方式。
参数:
filename:需要重定向到的文件名或文件路径。
mode:代表文件访问权限的字符串。例如,"r"表示“只读访问”、"w"表示“只写访问”、"a"表示“追加写入”。
stream:需要被重定向的文件流。
3.示例代码
代码如下(示例):
#include <stdio.h>
int main ()
{
FILE *fp;
printf("该文本重定向到 stdout\n");
fp = freopen("file.txt", "w+", stdout);
printf("该文本重定向到 file.txt\n");
fclose(fp);
return(0);
}
让我们编译并运行上面的程序,这将发送下列行到标准输出 STDOUT,因为起初我们并没有打开标准输出:
该文本重定向到 stdout
在调用 freopen() 之后,它会关联标准输出 STDOUT 到文件 file.txt,无论我们在标准输出 STDOUT 中写了什么都会被写入 file.txt,所以文件 file.txt 将有以下内容。
该文本重定向到 file.txt
四、fwrite函数
1.功能描述
向文件写入数据。
2.函数
所需头文件:
#include<unistd.h>
函数原型:
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)
// 把 ptr 所指向的数组中的数据写入到给定流 stream 中。
//返回值:如果成功,该函数返回一个 size_t 对象,表示元素的总数,该对象是一个整型数据类型。
//如果该数字与 nmemb 参数不同,则会显示一个错误。
函数说明:
ptr – 这是指向要被写入的元素数组的指针。
size – 这是要被写入的每个元素的大小,以字节为单位。
nmemb – 这是元素的个数,每个元素的大小为 size 字节。
stream – 这是指向 FILE 对象的指针,该 FILE 对象指定了一个输出流。
3.示例代码
代码如下(示例):
#include<stdio.h>
int main ()
{
FILE *fp;
char str[] = "This is runoob.com";
fp = fopen( "file.txt" , "w" );
fwrite(str, sizeof(str) , 1, fp );
fclose(fp);
return(0);
}
让我们编译并运行上面的程序,这将创建一个文件 file.txt,它的内容如下:
This is runoob.com
五、fseek()函数
1.功能描述
重定位文件内部的指针
2.函数
所需头文件:
#include<unistd.h>
函数原型:
int fseek(FILE *stream, long int offset, int whence);
//返回值:重定位成功返回0,否则返回非零值.
函数说明:
参数:
stream – 这是指向 FILE 对象的指针,该 FILE 对象标识了流。
offset – 这是相对 whence 的偏移量,以字节为单位。
whence – 这是表示开始添加偏移 offset 的位置。它一般指定为下列常量之一:
3.示例代码
代码如下(示例):
#include <stdio.h>
int main ()
{
FILE *fp;
fp = fopen("file.txt","w+");
fputs("This is runoob.com", fp);
fseek( fp, 7, SEEK_SET );
fputs(" C Programming Langauge", fp);
fclose(fp);
return(0);
}
让我们编译并运行上面的程序,这将创建文件 file.txt,它的内容如下。最初程序创建文件和写入 This is runoob.com,但是之后我们在第七个位置重置了写指针,并使用 puts() 语句来重写文件,内容如下:
This is C Programming Langauge
六、fclose()函数
1.功能描述
关闭流 stream。刷新所有的缓冲区。
2.函数
所需头文件:
#include <stdio.h>
函数原型:
int fclose(FILE *stream)
//返回值:如果流成功关闭,则该方法返回零。如果失败,则返回 EOF。
函数说明:
关闭流 stream。刷新所有的缓冲区。
参数:
1.stream 流
3.示例代码
代码如下(示例):
#include <stdio.h>
int main()
{
FILE *fp;
fp = fopen("file.txt", "w");
fprintf(fp, "%s", "这里是 runoob.com");
fclose(fp);
return(0);
}
让我们编译并运行上面的程序,这将创建一个文件 file.txt,然后写入下面的文本行,最后使用 fclose() 函数关闭文件。
这里是 runoob.com
版权声明:本博所提供的内容均为互联网整理而来,仅供学习参考,如有侵犯您的版权,请联系博主删除。