文件打开
fopen()
返回FILE* 对象,如果打开失败返回NULL,错误代码存入errno中
FILE *fopen( const char * filename, const char * mode ); //FILE文件型,int整型
申明FILE* stream_1,stream_2 //两个文件流
stream_1 = fopen("C:\Users\greenhat\Desktop\文档\test1.txt", "r+");//一般方式fopen(目录,操作)
errno_t err = fopen_s (&stream_2,"C:\Users\greenhat\Desktop\文档\test2.txt", "r+");//安全方式fopen_s(文件对象,目录,操作)
//注明:
”r+”打开读写文件。”r”打开只读文件。//文件必须存在
“w+”打开读写文件。”w”打开只写文件。//文件不存在自动建立。文件存在 自动覆盖 [常用]
“a+”打开读写文件(以附加的方式)。//文件不存在自动建立。文件存在 数据加到文件尾部 [常用]
“a”打开只写文件(以附加的方式)。//文件不存在自动建立。文件存在 数据加到文件尾部
文件关闭
fclose()
返回0(关闭成功)或返回EOF(发生错误)//EOF为-1
int fclose( FILE *fp );
文件写入
fputc()
把参数c的字符值写入到fp所指向的输出流中
返回写入的字符(写入成功)或返回EOF(发生错误)
int fputc( int c, FILE *fp );
fputs()
把字符串s写入到fp所指向的输出流中
返回一个非负值(写入成功)或返回EOF(发生错误)
int fputs( const char *s, FILE *fp );
fprintf()
把一个字符串写入到指向的输出流,根据指定format(格式)
返回写入的字符数(写入成功)或返回负值(发生错误)
int fprintf( FILE *stream, const char *format, ... );
文件读取
fgetc()
从fp所指向的输入文件中读取一个字符
返回读取字符(读取成功)或返回EOF(发生错误)
int fgetc( FILE * fp );
fgets()
从fp所指向的输入流中读取n-1个字符,并把读取的字符串复制到缓冲区,在最后追加一个NULL字符来终止字符串,如果函数在读取完n-1个字符之前就遇到换行符 或者文件结尾EOF,则只返回读取到的字符包括换行符
char *fgets( char *buf, int n, FILE *fp );
fscanf()
从一个流中执行格式化输入,根据format(格式)
返回读入参数个数(成功)或返回EOF(失败)
//注:遇到空格,换行时结束,fgets()遇到空格不结束。
//为安全,用fscanf_s()
int fscanf(FILE* stream , const char* format , [argument...]);