c文件读写

简介: c文件读写

在C语言中,文件读写是一个非常重要的功能,它允许程序与外部数据进行交互。通过文件读写,我们可以将数据保存到硬盘上,也可以从硬盘上读取数据。下面,我们将详细讲解C语言中的文件读写操作,并附上相应的编程示例。

一、文件的基本概念

在C语言中,文件被视为一个字节序列,也就是说,文件是一个字节流或二进制流。根据数据的组织形式,文件可分为文本文件和二进制文件。文本文件以字符形式存储数据,每个字符占一个字节,通常用于存储文本信息。而二进制文件则以二进制形式存储数据,可以存储各种类型的数据,包括字符、整数、浮点数等。

二、文件的打开与关闭

在C语言中,进行文件读写操作前,需要先打开文件,操作完成后,再关闭文件。这可以通过fopenfclose函数来实现。

1.fopen函数

fopen函数用于打开一个文件,其函数原型如下:

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

其中,filename是文件名,mode是打开方式。mode参数指定了文件的打开模式,如"r"表示只读打开,"w"表示写入(会覆盖原有文件内容),"a"表示追加等。如果文件打开成功,fopen函数会返回一个FILE类型的指针,否则返回NULL

2.fclose函数

fclose函数用于关闭一个已打开的文件,其函数原型如下:

int fclose(FILE *stream);

其中,streamfopen函数返回的文件指针。如果文件关闭成功,fclose函数会返回0,否则返回EOF。

三、文件的读写操作

在C语言中,有多种方式可以进行文件的读写操作,如fputcfgetcfputsfgetsfreadfwrite等函数。下面,我们将介绍其中几个常用的函数。

1.fputcfgetc函数

fputc函数用于将一个字符写入文件,其函数原型如下:

int fputc(int char, FILE *stream);

其中,char是要写入的字符,stream是文件指针。如果写入成功,fputc函数会返回写入的字符,否则返回EOF。

fgetc函数用于从文件中读取一个字符,其函数原型如下:

int fgetc(FILE *stream);

其中,stream是文件指针。如果读取成功,fgetc函数会返回读取的字符,否则返回EOF。

2.fputsfgets函数

fputs函数用于将一个字符串写入文件,其函数原型如下:

int fputs(const char *str, FILE *stream);

其中,str是要写入的字符串,stream是文件指针。如果写入成功,fputs函数会返回一个非负值,否则返回EOF。

fgets函数用于从文件中读取一行字符串,其函数原型如下:

char *fgets(char *str, int n, FILE *stream);

其中,str是存储读取字符串的缓冲区,n是缓冲区的长度,stream是文件指针。如果读取成功,fgets函数会返回缓冲区的指针,否则返回NULL。

四、编程示例

下面是一个简单的C程序,演示了如何使用上述函数进行文件的读写操作:

#include <stdio.h> 
#include <stdlib.h> 
int main() { 
FILE *fp; 
char ch; 
char str[100]; 
// 打开文件,如果文件不存在则创建 
fp = fopen("test.txt", "w+"); 
if (fp == NULL) { 
printf("文件打开失败!\n"); 
exit(1); 
} 
// 写入数据到文件 
fputc('H', fp); 
fputc('e', fp); 
fputc('l', fp); 
fputc('l', fp); 
fputc('o', fp); 
fputc('\n', fp); 
fputs("Welcome to C file I/O tutorial!\n", fp); 
// 重新定位文件指针到文件开头 
rewind(fp); 
// 从文件中读取数据并打印出来 
while ((ch = fgetc(fp)) != EOF) { 
putchar(ch); 
} 
printf("\n"); 
// 再次重新定位文件指针到文件开头,并读取一行数据到str中 
rewind(fp); 
fgets(str, 100, fp); 
printf("读取的一行数据是:%s", str); 
// 关闭文件并退出程序 
fclose(fp); 
return 0; 
}

这个程序首先创建了一个名为"test.txt"的文件,并向其中写入了两行数据。然后,它重新定位文件指针到文件开头,并逐字符读取文件中的数据并打印出来。最后,它再次重新定位文件指针到文件开头,并读取一行数据到str中,然后打印出来。

相关文章
|
6月前
|
存储 程序员 C语言
C文件读写
【2月更文挑战第14天】C文件读写。
31 1
|
1月前
读写文件使用
读写文件使用
18 2
|
5月前
|
存储 C++
C++文件操作
C++文件操作
|
存储 C语言
C 文件读写
C 文件读写。
43 0
|
6月前
|
存储 移动开发 Linux
C++017-C++文件读写应用
C++017-C++文件读写应用
|
存储 C++ iOS开发
70 C++ - 文件读写
70 C++ - 文件读写
56 0
|
存储 编译器 数据库
文件操作介绍(上)
文件操作介绍(上)
52 0
|
缓存 数据格式
文件读写
文件读写
95 0
|
Linux 网络安全 Docker
文件操作
文件操作
65 0
|
存储 iOS开发 C++
c++文件读写操作
c++文件读写操作