在 C 语言 中,我们在使用 fopen 函数打开 文件 之后,可以使用 fputc 以单个 字符 的形式写入文件,还可以使用 fputs 函数,将字符串写入文件。
同时,我们还可以使用 fwrite 函数实现一次写入多行内容到文件中。
size_t fwrite(void * ptr, size_t size, size_t count, FILE *fp);
参数 | 描述 |
---|---|
ptr | 用来存放要写入的数据。 |
size | 表示每个数据块的字节数。 |
count | 表示要写入的数据块的块数。 |
fp | 文件指针。 |
返回成功写入的块数。
fwrite 函数在 stdio.h 的头文件里面。
理论上,每次写入 size*count 个字节的数据。
使用 fwrite 函数一次性写入多个数据块到文件中
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("嗨客网(www.haicoder.net)\n\n");
FILE *fp = NULL;
if ( (fp = fopen("c:\\1.txt", "rb+")) == NULL )
{
puts("Open file failed\n");
return;
}
else
{
puts("Open file success\n");
}
int arr[12] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
int i = 0;
fwrite(arr, 4, 12, fp);
puts("Write file success\n");
fclose(fp);
return 0;
}
程序运行后,控制台输出如下:
我们首先,使用了 fopen 函数,打开了一个 c 盘的文件,打开成功后,我们使用打开后返回的 FILE 指针,并调用 fwrite 函数,来进行写入文件。
写入成功后,我们一定要使用 fclose 函数对文件进行关闭,最后,我们打开文件,发现,文件中已经被写入了数据,此时的数据是二进制的,因此,不能看到我们写入的数字。
使用块的方式来进行文件的读写
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("嗨客网(www.haicoder.net)\n\n");
FILE *fp = NULL;
if ( (fp = fopen("c:\\1.txt", "rb+")) == NULL )
{
puts("Open file failed\n");
return;
}
else
{
puts("Open file success\n");
}
int arr[12] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
int ret[12];
fwrite(arr, 4, 12, fp);
puts("Write file success\n");
rewind(fp);
if (fread(ret, 4, 12, fp) == NULL)
{
puts("Read file error\n");
}
else
{
printf("Read file success\n");
}
int i = 0;
for(i = 0; i < 12; i++)
{
printf("%d, ", ret[i]);
}
fclose(fp);
return 0;
}
程序运行后,控制台输出如下:
我们使用 fwrite 按块的方式写入文件之后,再次使用 fread 函数实现了读取整个文件的内容。
在 C 语言中,我们还可以使用 fwrite 函数实现一次写入多行内容到文件中。