第一个参数(path):打开文件的路径和文件名
第二个参数(mode):打开文件的方式
mode功能b二进制文件r以制度方式打开文件,文件必须存在w以只写覆盖方式打开文件,文件不存在则创建a以只写追加方式打开文件,文件不存在则创建r+以读写方式打开文件,文件必须存在w+、a+…读写方式…另外,stdio.h头文件把三个文件指针与三个标准文件相关联,C程序会自动打开这三个标准文件。
标准文件文件指针常用功能类型标准输入stdin从键盘输入标准输出stdout从显示器输出行缓存标准错误stderr从现实器输出无缓存这些指针都是指向FILE的指针,可以将其用作标准I/O的参数,也就是和fp是同一种性质。
返回值:文件流指针
puts、fputs、scanf
以fputs为例:
int fputs(const char *s, FILE *stream);例如:
int main() { fputs("hello world!", stdout);//stdout表示标准的输出 while(1); return 0; }在此程序中,只有在hello world后面加"\n"才能输出到显示屏上,即验证了fputs是行缓存
gets、fgets、printf、sprintf、fprintf
以fgets为例:
char *fgets(char *s, int size, FILE *stream);例如:
int main() { char rd_buf[128] = {0}; fgets(rd_buf, 128, stdin);//从标准输入中去读,即从键盘输入 fputs(rd_buf, stdout);//写到标准输出中去,即显示屏显示 return 0; }此程序运行后会从键盘输入后从显示器输出。
1.fwrite
2.fread
功能:把库函数中的缓存强制写到内核中去。
例如:
int main() { fputs("hello world!", stdout);//stdout表示标准的输出 fflush(stdout); while(1); return 0; }就算hello world后面不加"\n",也会将其输出到显示器上。
功能:在改文件被关闭之前,刷新缓存中的数据,释放标准I/O库为其分配的缓存。
例如:
int main() { fputs("hello world!", stdout);//stdout表示标准的输出 fclose(stdout); while(1); return 0; }其作用和fflush相同,因为fclose函数里包含了fflush函数。
功能:
等价于(void)fseek(FILE *stream, 0, SEEK_SET);1.feof函数:判断是否已经到达文件结尾
2.ferror函数:判断是否读写错误
3.clearerr函数:清除流错误