本文介绍C语言中常用的文件读写方法: fputc /putc 和fgetc/getc。
一、fputc
1. 函数格式:int fputc(char ch, FILE* fp);
2. 参数解释:
ch是要写入的字符,它可以是一个字符常量,也可以是一个字符变量;
fp为文件指针,它是执行 fopen 打开文件函数获得的。
3. 函数功能:将字符ch写入到文件指针fp所指向的文件的当前写指针的位置。
4. 函数返回值:fputc 函数带回一个值:如果写入成功,则返回值为写入的字符,同时文件内部写指针会自动后移一个字节的位置;如果写入失败,则返回一个EOF(即-1)。EOF是在stdio.h文件中定义的符号常量,值为-1。
5. putc 的功能与用法与 fputc相同。
6. 源代码示例:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define FPUTC_TXT "fputc_txt"
int main()
{
FILE* fp;
char* str = "have a nice day!";
int i;
if (NULL == (fp = fopen(FPUTC_TXT, "w+"))) {
printf("open file failed!\n");
exit(0);
}
for (i = 0; i < strlen(str); i++) {
fputc(str[i], fp);
}
fclose(fp);
return 0;
}
说明:
1)文件“fputc_txt”是与上面源码文件处于同一目录下的文本文件;
2)上面代码的作用是将字符串 str 的内容写入到文本文件“fputc_txt”中,经过编译运行,证实上述代码可用。
二、fgetc
1. 函数格式:int fgetc(FILE* fp);
2. 参数解释:fp为文件指针,它是执行 fopen 打开文件函数获得的。
3. 函数功能:从文件指针fp所指向的文件中读取一个字符。
4. 函数返回值:fgetc 函数返回所读取的一个字节,如果读取成功,光标位置后移一个字节;如果在执行fgetc函数读字符时,遇到文件结束符或读取出错时,函数返回一个文件结束标志EOF(即-1)。
5. getc的用法与fgetc相同。
6. 源代码示例:
#include <stdio.h>
#include <stdlib.h>
#define FGETC_TXT "fgetc_txt"
int main()
{
FILE* fp;
char str[30];
int i = 0;
if (NULL == (fp = fopen(FGETC_TXT, "r"))) {
printf("open file failed!\n");
exit(0);
}
while ((EOF != (str[i] = fgetc(fp))) && i < 30) {
i++;
}
str[i] = '\0';
printf("%s", str);
fclose(fp);
return 0;
}
说明:
1)文件“fgetc_txt”是与上面源码文件处于同一目录下的文本文件,此文件需要用户手动创建,并编辑文件内容;
2)上面代码的作用是读取文件“fgetc_txt”的内容,并将读取的内容赋值给字符串 str,最后输出字符串 str 的内容,经过编译运行,证实上述代码可用。