getchar(),putchar() ‐‐‐‐ 一个字符
gets(buf),puts(buf) ‐‐‐‐ 一串字符
scanf(),printf() ‐‐‐‐ 一个字符,一串字符都可以
fopen函数的形式
FILE * fopen(constchar *path , cost char *mode)
/*
* @description : 打开一个文件
* @param ‐ path : 指定文件路径 , 如: "./test.txt"
* @param ‐ mode :指定文件的打开方式,如下图:
* @return :fopen: 成功,返回指向该文件的文件指针; 若失败,返回 NULL
*/
mode有以下值:
r :只读方式打开,文件必须存在
r+ :可读写,文件必须存在
rb+ :打开二进制文件,可以读写
rt+: 打开文本文件,可读写
w: 只写,文件存在则文件长度清 0 ,文件不存在则建立该文件
w+: 可读写,文件存在则文件长度清 0 ,文件不存在则建立该文件
a: 附加方式打开只写,不存在建立该文件,存在写入的数据加到文件尾, EOF 符保留
a+ :附加方式打开可读写,不存在建立该文件,存在写入的数据加到文件尾, EOF 符不保留
wb :打开二进制文件,只写 wb+: 打开或建立二进制文件,可读写
wt+: 打开或建立文本文件,可读写
at+: 打开文本文件,可读写,写的数据加在文本末尾 ab+: 打开二进制文件,可读写,写的数据加在文件末尾
fclose函数的形式
函数原型:int fclose(FILE*stream)
关闭一个文件流,使用 fclose 就可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区
/*
* @description : 关闭一个已打开的流
* @param ‐ stream : 文件指针(流)
* @return : fclose:成功,返回0; 若失败,返回EOF
*/
#include<stdio.h>
int main()
{
FILE *fp = NULL;/*create a null file创建一个空的指针文件*/
int nRet = 0 ;
fp =fopen("mm","w");/*fp mode w,create*打开指针文件mm,模式为w 可写,没有文件则创建文件/
if (fp == NULL)/*NUll open failed!如果创建不成功,则fp=NULL*/
{
printf("open failed!\n");
return -1;}
printf("open success!\n");/*成功打开则输出打开成功*/
nRet = fclose(fp);
if(nRet)/*close success,others failed!*如果关闭成功则返回0,如果返回其他,则关闭不成功*/
{printf("close failed!\n");
return -2;}
printf("close success!\n");/*成功则返回关闭成功*/
return 0;}
~
lpych@lpych-virtual-machine:~$ gcc demo2.c -o demo
编译demo2.c 编译完后的文件为demo
lpych@lpych-virtual-machine:~$ ./demo
运行demo
提示:open success!
close success!
说明打开和关闭文件 mm成功!
lpych@lpych-virtual-machine:~$ ls -l
查看文件的权限,mm文件
因为之前mm文件有创建过,模式为0755,可读可写可执行,可读可执行,可读可执行
因此 lpych用户,可读可写可执行,组用户,可读可执行,其他用户,可读可执行
之前有操作生成过mm,将新文件命名ll
#include<stdio.h>
int main()
{
FILE *fp = NULL;
int nRet = 0 ;
fp =fopen("ll","w");
if (fp == NULL)
{
printf("open failed!\n");
return -1;}
printf("open success!\n");
nRet = fclose(fp);
if(nRet)
{printf("close failed!\n");
return -2;}
printf("close success!\n");
return 0;}
~
lpych用户,可读可写,组用户,可读,其他用户,可读
与w模式相对应