在 C 语言 中,我们在使用 fopen 函数打开 文件 之后,可以按照单个 字符 的形式对文件进行写入,将单个字符写入文件使用的 函数 为 fputc。
int fputc(int ch, FILE *fp);
参数 | 描述 |
---|---|
ch | 要写入的字符。 |
fp | 打开文件返回的文件指针。 |
fputc() 写入成功时返回写入的字符,失败时返回 EOF。
fputc 函数在 stdio.h 的头文件里面。
被写入的文件可以用写、读写、追加方式打开,用写或读写方式打开一个已存在的文件时将清除原有的文件内容,并将写入的字符放在文件开头。
如需保留原有文件内容,并把写入的字符放在文件末尾,就必须以追加方式打开文件。不管以何种方式打开,被写入的文件若不存在时则创建该文件。
每写入一个字符,文件内部位置指针向后移动一个字节。
使用 fopen 函数打开文件,使用 fputc 函数以字符方式写入文件
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("嗨客网(www.haicoder.net)\n\n");
FILE *fp = NULL;
if ( (fp = fopen("c:\\1.txt", "wt+")) == NULL )
{
puts("Open file failed\n");
return;
}
else
{
puts("Open file success\n");
}
fputc('H', fp);
fputc('a', fp);
fputc('i', fp);
fputc('C', fp);
fputc('o', fp);
fputc('d', fp);
fputc('e', fp);
fputc('r', fp);
puts("Write file success\n");
int ret = fclose(fp);
if (ret == 0)
{
puts("Close file success\n");
}
else
{
puts("Close file failed\n");
}
return 0;
}
程序运行后,控制台输出如下:
我们首先,使用了 fopen 函数,打开了一个 c 盘的文件,打开成功后,我们使用打开后返回的 FILE 指针,并调用 fputc 函数,来进行写入文件。
写入成功后,我们一定要使用 fclose 函数对文件进行关闭,最后,我们打开文件,发现,文件中已经被写入了 “HaiCoder”。
使用 fopen 函数打开文件,使用 fputc 函数以字符方式写入文件
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("嗨客网(www.haicoder.net)\n\n");
FILE *fp = NULL;
if ( (fp = fopen("c:\\1.txt", "wt+")) == NULL )
{
puts("Open file failed\n");
return;
}
else
{
puts("Open file success\n");
}
fputc('H', fp);
fputc('a', fp);
fputc('i', fp);
fputc('C', fp);
fputc('o', fp);
fputc('d', fp);
fputc('e', fp);
fputc('r', fp);
puts("Write file success\n");
fseek(fp, 0, 0);
char ch;
printf("Read file content: ");
while( (ch = fgetc(fp)) != EOF )
{
putchar(ch);
}
printf("\n");
int ret = fclose(fp);
if (ret == 0)
{
puts("Close file success\n");
}
else
{
puts("Close file failed\n");
}
return 0;
}
程序运行后,控制台输出如下:
我们使用,fputc 写入文件之后,再次使用了 fgetc 读取了文件,同时,在读取之前, 我们使用了 fseek 函数,移动了文件指针。
因为,在我们使用 fputc 写入文件之后,文件指针已经移动到了文件尾,所以,此时,如果不使用 fseek 函数移动文件指针,那么文件指针在末尾,是读取不到文件内容的。
在 C 语言中,我们在使用 fopen 函数打开文件之后,可以按照单个字符的形式对文件进行写入,将单个字符写入文件使用的函数为 fputc。