2:标准文件编程库
2.1: 创建,打开,关闭,删除函数族
#include <stdio.h>
FILE *fopen (const char *filename, cnost char *type)
FILE *freopen (const char *filename, const char*type, FILE *stream)
(常用于输入输出重定向)
int fclose (FILE *stream) 成功返回0,否则EOF
int remove (const char *filename) 删除文件或目录,成功返回0,否则其它值
int rename (const char *oldname, const char *newname)成功返回0,否则-1
2.2: 字符输入函数族
#include <stdio.h>
int getc(FILE *stream);
int getchar(void);
int fgetc(FILE *stream);
返回值均为int型:
·····················
int c;
c = getc(FILENAME);
if (c == EOF)
·····················
2.3: 字符输出函数族
#include <stdio.h>
int putc(int c,FILE *stream); 将c写入stream
int putchar(int c);
int fputc(int c,FILE *stream);将c写入stream
2.4: 行输入函数族
#include <stdio.h>
char *gets(char *s);
char *fgets(char *s, int n, FILE *stream);
(从stream中读取n个数到s,成功时返回s)
·····························
char s[1024];
fgets(s, sizeof(s), stream);
·····························
2.5: 行输出函数族
#include <stdio.h>
int puts(const char *s)
int fputs(const char *s, FILE *stream)
(把s输出到stram中,不输出结束符,不自动添加换行符)
2.6: #include <string.h>
char *strstr(char *s1, char *s2)查找s2在s1中第一次出现的位置
2.7: 块读写函数
#include <stdio.h>
size_t fread(void *ptr,size_t size,
size_t nitems,FILE *stream);
(从stream中读入nitems个数据项到ptr,每个数据项有size大小)
size_t fwrite(const void *ptr, size_t size,
size_t nitems, FILE *stream);
2.8: 变长参数函数的定义(例如计算输入不定个数整数的和)
#include <stdarg.h>
int mysum(int i, ...) //i为变量的个数
{
int r = 0, j = 0;
va_list pvar; //申明变量pvar,可访问参数
va_start(pvar, i); //i为省略号前一个参数
for (j = 0; j < i; j++)
{
r += va_arg(pvar, int); //获取参数中的值
}
va_end(pvar); //关闭对参数列表的访问
return (r);
}
2.9: 文件读写位置的定位
#include <stdio.h>
void rewind(FILE *stream);
long int ftell(FILE *stream);
int fseek(FILE *stream, long int offset, int whence);
(whence取值:
SEEK_SET - 文件头开始定位
SEEK_CUR - 当前位置开始定位
SEEK_END - 文件尾开始定位
offset为偏移量,成功返回0.
rewind将文件定位于开始处,ftell返回当前访问位置)
2.10: 文件状态函数
#include <stdio.h>
int ferror(FILE *stream);
int feof(FILE *stream);
void clearerr(FILE *stream);
当文件读写发生错误时调用ferror返回非0.
当文件结束时调用feof返回非0.
clearerr清除错误和结束标志.
2.1: 创建,打开,关闭,删除函数族
#include <stdio.h>
FILE *fopen (const char *filename, cnost char *type)
FILE *freopen (const char *filename, const char*type, FILE *stream)
(常用于输入输出重定向)
int fclose (FILE *stream) 成功返回0,否则EOF
int remove (const char *filename) 删除文件或目录,成功返回0,否则其它值
int rename (const char *oldname, const char *newname)成功返回0,否则-1
2.2: 字符输入函数族
#include <stdio.h>
int getc(FILE *stream);
int getchar(void);
int fgetc(FILE *stream);
返回值均为int型:
·····················
int c;
c = getc(FILENAME);
if (c == EOF)
·····················
2.3: 字符输出函数族
#include <stdio.h>
int putc(int c,FILE *stream); 将c写入stream
int putchar(int c);
int fputc(int c,FILE *stream);将c写入stream
2.4: 行输入函数族
#include <stdio.h>
char *gets(char *s);
char *fgets(char *s, int n, FILE *stream);
(从stream中读取n个数到s,成功时返回s)
·····························
char s[1024];
fgets(s, sizeof(s), stream);
·····························
2.5: 行输出函数族
#include <stdio.h>
int puts(const char *s)
int fputs(const char *s, FILE *stream)
(把s输出到stram中,不输出结束符,不自动添加换行符)
2.6: #include <string.h>
char *strstr(char *s1, char *s2)查找s2在s1中第一次出现的位置
2.7: 块读写函数
#include <stdio.h>
size_t fread(void *ptr,size_t size,
size_t nitems,FILE *stream);
(从stream中读入nitems个数据项到ptr,每个数据项有size大小)
size_t fwrite(const void *ptr, size_t size,
size_t nitems, FILE *stream);
2.8: 变长参数函数的定义(例如计算输入不定个数整数的和)
#include <stdarg.h>
int mysum(int i, ...) //i为变量的个数
{
int r = 0, j = 0;
va_list pvar; //申明变量pvar,可访问参数
va_start(pvar, i); //i为省略号前一个参数
for (j = 0; j < i; j++)
{
r += va_arg(pvar, int); //获取参数中的值
}
va_end(pvar); //关闭对参数列表的访问
return (r);
}
2.9: 文件读写位置的定位
#include <stdio.h>
void rewind(FILE *stream);
long int ftell(FILE *stream);
int fseek(FILE *stream, long int offset, int whence);
(whence取值:
SEEK_SET - 文件头开始定位
SEEK_CUR - 当前位置开始定位
SEEK_END - 文件尾开始定位
offset为偏移量,成功返回0.
rewind将文件定位于开始处,ftell返回当前访问位置)
2.10: 文件状态函数
#include <stdio.h>
int ferror(FILE *stream);
int feof(FILE *stream);
void clearerr(FILE *stream);
当文件读写发生错误时调用ferror返回非0.
当文件结束时调用feof返回非0.
clearerr清除错误和结束标志.