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模式相對應