目录
三、一次读/写一个字符(fgetc,getc,getchar,fputc,putc,putchar)
四、一次一行字符(fgets,ges,fputs,puts)
一、打开文件:fopen
#include <stdio.h>
FILE *fopen(const char *pathname, const char *mode);
功能:
打开文件
参数:
pathname:文件路径(有路径的文件名)
mode:打开的方式:
方式 权限 文件要求 写的形式
r 只读 文件必须已存在
r+ 可读可写 文件必须已存在 清空模式
w 只写 文件可以不存在,若不存在则创建 清空模式
w+ 可读可写 文件可以不存在,若不存在则创建 清空模式
a 只写 文件可以不存在,若不存在则创建 追加模式
a+ 可读可写 文件可以不存在,若不存在则创建 追加模式
返回值:
成功:流(文件指针)
失败:NULL,返回错误码
二、 关闭文件:fclose
#include <stdio.h>
int fclose(FILE *stream);
功能:
关闭文件
参数:
流stream
返回值:成功返回0
失败返回错误码
流的读写
三、一次读/写一个字符(fgetc,getc,getchar,fputc,putc,putchar)
读取:
fgetc
man fgetc
#include <stdio.h>
int fgetc(FILE *stream);
功能:
根据相应的文件的流,读取一个字符
参数:
流stream
返回值:
成功返回读取到的字符
失败返回错误码
宏:getc
man getc
#include <stdio.h>
int getc(FILE *stream);
getc是fgetc的宏定义
最大的区别是fgetc是函数,getc是宏。
getc是fgetc通过宏实现的,调用的时候需要注意:
参数stream不能是有副作用的表达式
功能参数返回值都和fgetc是一样的
#define getc fgetc
#define wyz fgetc
**************************************************************
getchar();
#include <stdio.h>
int getchar(void);
功能:
在标准输入读取一个字符
参数:
空
返回值:
成功读取一个字符
失败返回错误码
一般getchat 一般用于清理垃圾字符
写的操作(一次一个字符)
fputc();
#include <stdio.h>
int fputc(int c, FILE *stream);
功能:
对相对于的流写入一个字符
参数:
c:需要写入的字符
stream:流
返回值:
成功:写入的字符
失败:返回错误码
************************************
putc();
man putc
#include <stdio.h>
int putc(int c, FILE *stream);
putc是fputc的宏,用法和fputc一模一样
#define putc fputc
*****************************************
putchar
man putchar
#include <stdio.h>
int putchar(int c);
功能:
向标准输出写一个字符
参数:
c:需要写入的字符
返回值:
成功:写入的字符
失败:返回错误码
四、一次一行字符(fgets,ges,fputs,puts)
读取:
fgets();
man fgets
#include <stdio.h>
char *fgets(char *s, int size, FILE *stream);
功能:
对相应的文件读取一行数据,如遇到“\n”则停止读取
参数:
s:读出一行数据放置的地方,char buf[128]
size:读取数据的最大的限度,读一次读多少个字节,size-1,‘\0’
stream:流
返回值:
成功:读出数据存放的地址
失败:NULL并返回错误码
************************************
gets();
#include <stdio.h>
char *gets(char *s);
为了安全,gets少用,因为其没有指定输入字符的大小,
限制输入缓冲区的大小,如果输入的字符比定义的数组长度大的话,
容易发生内存越界,堆栈溢出。
功能:
在标准输入读取一行数据
参数:
s:读出一行数据放置的地方,char buf[128]
返回值:
成功:读出数据存放的地址
失败:NULL并返回错误码
写的操作(一次一行字符)
fputs
#include <stdio.h>
int fputs(const char *s, FILE *stream);
功能:
写入一行数据到相应的文件中
参数:
s:写入一行数据放置的地方,char buf[128]
stream:流
返回值:
成功返回非负数
失败返回错误码
*************************************
puts
#include <stdio.h>
int puts(const char *s);
功能:
向标准输出写一行字符
参数:
s:写入一行数据放置的地方,char buf[128]
返回值:
成功返回非负数
失败返回错误码
五、一次一块字符------*(fread,fwrite)
读取(一次读取一块字符)
fread
man fread
#include <stdio.h>
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
功能:
在相应的流中读取一块字符
参数:
ptr:读取数据所放置的位置
size:读取一次要读多少个字节
nmemb:运行一次函数,读取多少次数据
stream:流
返回值:
成功返回:读取的次数
失败返回:0
写入(一次写入一块字符)
fwrite
#include <stdio.h>
size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);
功能:
写入一块数据到相应的文件中
参数:
ptr:写入数据所放置的位置
size:写入一次要写多少个字节
nmemb:运行一次函数,写入多少次数据
stream:流
返回值:
成功返回:写入的次数
失败返回:0