文件读写是C语言的一个重要部分,文件读写操作主要是通过函数库提供的各种操作文件的函数来实现的。在实现文件读写时,主要分为以下几个步骤:
- 打开文件
C语言提供了fopen函数来打开文件,并返回一个指向文件的指针,该函数原型如下:
FILE *fopen(const char *filename, const char *mode);
其中,filename表示要打开的文件名,mode表示文件打开模式。C语言中文件模式有以下几种:
- "r":以只读方式打开文件,文件必须存在。
- "w":以写方式打开文件,文件不存在则创建,文件存在时清空文件内容。
- "a":以追加方式打开文件,文件不存在则创建。
- "rb":以二进制只读方式打开文件,文件必须存在。
- "wb":以二进制写方式打开文件,文件不存在则创建,文件存在时清空文件内容。
-
"ab":以二进制追加方式打开文件,文件不存在则创建。
-
读写文件
-
文件读取
C语言提供了fread函数来读取文件,并返回一个读取到的字节数,该函数原型如下:
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
其中,ptr是指向存储读取数据的内存地址,size是要读取的每个数据块的大小,count是要读取的数据块的个数,stream是读取的文件目标。
示例代码如下:
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp;
char content[100];
// 打开文件并读取
fp = fopen("test.txt", "r");
// 读取文件内容
fread(content, sizeof(char), 100, fp);
printf("读取的内容为:%s\n", content);
// 关闭文件
fclose(fp);
return 0;
}
- 文件写入
C语言提供了fwrite函数来写入文件,并返回一个写入的字节数,该函数原型如下:
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);
其中,ptr是指向写入数据的内存地址,size是要写入的每个数据块的大小,count是要写入的数据块的个数,stream是写入的文件目标。
示例代码如下:
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp;
char content[100];
// 打开文件并写入
fp = fopen("test.txt", "w");
// 写入文件内容
fwrite("hello world", sizeof(char), 11, fp);
printf("内容写入完成!\n");
// 关闭文件
fclose(fp);
return 0;
}
- 关闭文件
完成文件读写操作后,需要关闭文件以释放资源,将文件从内存中卸载。C语言提供了fclose函数来关闭文件,该函数原型如下:
int fclose(FILE *stream);
示例代码如下:
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp;
char content[100];
// 打开文件并读取
fp = fopen("test.txt", "r");
// 读取文件内容
fread(content, sizeof(char), 100, fp);
printf("读取的内容为:%s\n", content);
// 关闭文件
fclose(fp);
return 0;
}
上面的示例代码实现了从文件test.txt中读取数据并输出到控制台。另外,还可以使用类似的方式从控制台读取输入,并将输入写入到文件中。
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp;
char content[100];
// 打开文件并写入
fp = fopen("test.txt", "w");
// 读取输入
printf("请输入内容:");
scanf("%s", content);
// 写入文件内容
fwrite(content, sizeof(char), strlen(content), fp);
printf("内容写入完成!\n");
// 关闭文件
fclose(fp);
return 0;
}
上面的示例代码实现了从用户输入中读取数据,并将数据写入到文件test.txt中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现文件读写 - Python技术站