1.fputc
将单个字符写入指定文件中,只能操作文本文件。
1)头文件
#include <stdio.h>
2)函数原型
int fputc(int c, FILE *stream);
3)参数
c:要写入的字符(char类型)。
stream:要写入的文件指针。
4)返回值
若写入成功,返回写入的字符,若写入失败,则返回EOF(-1)。
5)示例:(以特定方式打开文件并单字节写入任意内容)
#include <stdio.h>
int main()
{
FILE *fp = fopen("ftest", "w+");
if (!fp) {
printf("error: ftest open\n");
return -1;
}
if (fputc('a', fp) == EOF) {
printf("error: ftest fputc 1\n");
return -1;
}
if (fputc('\n', fp) == EOF) { //再次写入换行符方便查看
printf("error: ftest fputc 2\n");
return -1;
}
return 0;
}
6)编译运行并查看测试结果
$ cat ftest //cat查看ftest文件内容
a
2.fputs
将一行字符写入指定文件中,只能操作文本文件。
1)头文件
#include <stdio.h>
2)函数原型
int fputs(const char *ptr, FILE *stream);
3)参数
ptr:指向字符数组的指针,存储的是要写入文件的字符串。
stream:要写入数据的文件指针。
4)返回值
若写入成功,返回非负整数,若写入失败,则返回EOF(-1)。
5)示例:(以特定方式打开文件并多字节写入特定内容)
#include <stdio.h>
int main()
{
char buf[30] = "HELLO WORLD!!!\n";
FILE *fp = fopen("ftest", "w+");
if (!fp) {
printf("error: ftest open\n");
return -1;
}
if (fputs(buf, fp) == EOF) {
printf("error: ftest fputs\n");
return -1;
}
return 0;
}
6)编译运行并查看测试结果
$ cat ftest //cat查看ftest文件内容
HELLO WORLD!!!
3.fwrite
将指定长度、大小的字符写入指定文件中,只能操作文本文件。
1)头文件
#include <stdio.h>
2)函数原型
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
3)参数
buf:指向存放着要写入的数据的缓冲区。
size:要写入的每个块的大小,以字节为单位。
nmemb:要写入块的个数,每个块的大小为 size 字节。
stream:要写入的文件指针。
4)返回值
返回写入的块数量,若等于nmemb,表示写入成功;若返回值小于nmemb,表示出错。
5)示例:(以特定方式打开文件并指定大小、长度写入特定内容)
#include <stdio.h>
#include <string.h>
int main()
{
char buf[30] = "HELLO WORLD!!!\n";
FILE *fp = fopen("ftest", "w+");
if (!fp) {
printf("error: ftest open\n");
return -1;
}
size_t fwn = fwrite(buf, sizeof(char), strlen(buf), fp) ; //sizeof计算char类型的大小
//strlen计算buf的实际内容长度
if (fwn < strlen(buf)) {
printf("error: ftest fwrite\n");
return -1;
}
return 0;
}
6)编译运行并查看测试结果
$ cat ftest //cat查看ftest文件内容
HELLO WORLD!!!
|
|