二:标准I/O函数
1.fopen函数
【原型】 FILE *fopen(const char *path,const char *mode);
【功能】 获取指定文件的文件指针
【头文件】 #include <stdio.h>
【参数path】 即将要打开的文件
【参数mode】 "r" :以只读方式打开文件,要求文件必须存在。
"r+":以读写方式打开文件,要求文件必须存在。
"w" :以只写方式打开文件,文件如果不存在将会创建新文件,如果存在将会将其内容清空。
"w+":以读写方式打开文件,文件如果不存在将会创建新文件,如果存在将会将其内容清空。
"a" :以只写方式打开文件,文件如果不存在将会创建新文件,且文件位置偏移量被自动定位到文件末尾(即追加方式写数据).
【返回值】 成功: 文件指针 失败 :NULL
代码演示:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
int main(int argc,const **argv)
{
FILE *F = NULL;
int n;
F = fopen("./2.txt","r+");
printf("2.txt的文件指针为:%p\n",F);
char buf[8]={
'1','2','3','4','5','6','7','8'};
fwrite(buf,4,2,F);
//将字符数组buf里面的数据按照4个字节,每次写入2块进去文件F里面
char *p="abcdefghijklmn";
fwrite(p,1,strlen(p),F);
fclose(F);
return 0;
}
2.fclose函数
【原型】 int fclose(FILE *fp);
【功能】 关闭指定的文件并释放其资源
【头文件】 #include<stdio.h>
【参数fp】 即将要关闭的文件
【返回值】 成功:0 失败 EOF
=========================================================================================
3.fgetc函数
【原型】 int fgetc(FILE *stream);
【功能】 获取指定文件的一个字符
【头文件】 #include <stdio.h>
【参数stream】 文件指针
【返回值】 成功 读取到的字符 失败: EOF
【备注】 当返回EOF时,文件stream可能已经达末尾,或者遇到错误。
代码演示:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
int main(int argc,const **argv)
{
FILE *F = NULL;
int n;
F = fopen("./2.txt","r+");
while(n != EOF)
{
n = fgetc(F); //从文件指针一个一个字节读取,直到返回值为EOF的时候退出
printf("%c",n);
if(n=='n')
printf("\n");
}
fclose(F);
return 0;
}
------------------------------------------------------------------------------
4.getc函数
【原型】 int getc(FILE *stream);
【功能】 获取指定文件的一个字符
【头文件】 #include <stdio.h>
【参数stream】 文件指针
【返回值】 成功 读取到的字符 失败: EOF
【备注】 当返回EOF时,文件stream可能已经达末尾,或者遇到错误。
代码演示:
F = fopen("./2.txt","r+");
j = getc(F); //从文件中一次读取一个字节
printf("\t\t%c\n",j);
fclose(F);
5.getchar函数
【原型】 int getchar(void);
【功能】 获取指定文件的一个字符
【头文件】 #include <stdio.h>
【返回值】 成功 读取到的字符 失败: EOF
【备注】 当返回EOF时,文件stream可能已经达末尾,或者遇到错误。
代码演示:
F = fopen("./2.txt","r+");
k = getchar(); //每次从键盘上读取一个字符
printf("%c\n",k);
fclose(F);
6.fputc函数
【原型】 int fputc(int c,FILE *stream);
【功能】 将一个字符写入到一个指定的文件。
【头文件】 #include <stdio.h>
【参数 C】 要写入的字符
【参数stream】 写入的文件指针
【返回值】 成功:写入到的字符 失败 EOF
代码演示:
F = fopen("./2.txt","r+");
i = fputc('G',F); //每次将一个字符输入到文件中
printf("%c\n",i); //此处打印的是G。
//打开文件2.txt,发现G写在首位
fclose(F);
7.putc函数
【原型】 int putc(int c,FILE *stream);
【功能】 将一个字符写入到一个指定的文件。
【头文件】 #include <stdio.h>
【参数 C】 要写入的字符
【参数stream】 写入的文件指针
【返回值】 成功:写入到的字符 失败 EOF
代码演示:
F = fopen("./2.txt","r+");
l = putc('h',F);
printf("%d\n",l);
fclose(F);
8.putchar函数
【原型】 int putchar(int c);
【功能】 将一个字符写入到一个指定的文件。
【头文件】 #include <stdio.h>
【参数 C】 要写入的字符
【参数stream】 写入的文件指针
【返回值】 成功:写入到的字符 失败 EOF
代码演示:
putchar