----------处理一个字符
putchar()
fputc()
putc()
返回值:fputc(), putc() and putchar() return the character written as an unsigned char cast to an int or EOF on error.
-----putchar
原型:int putchar(int c);
说明:is equivalent to putc(c,stdout)
-----fputc
原型:int fputc(int c, FILE *stream);
-----puts
原型:int putc(int c, FILE *stream);
说明:
在谭浩强的书中提到,在stdlib.h中游这样的定义:#define putc(ch,fp) fputc(ch,fp)。
putc()与fputc()等价。不同之处为:当putc函数被定义为宏时,它可能多次计算stream的值。
getchar()
fgetc()
getc()
返回值:fgetc(), getc() and getchar() return the character read as an unsigned char cast to an int or EOF on end of file or error.
-----getchar
原型:int getchar(void);
说明:is equivalent to getc(stdin)
-----fgetc
原型:int fgetc(FILE *stream);
-----getc
原型:int getc(FILE *stream);
说明:同puts
在谭浩强的书中提到,在stdlib.h中游这样的定义:#define getc(fp) fgetc(fp)。
getc()与fgetc()等价。不同之处为:当getc函数被定义为宏时,它可能多次计算stream的值。
----------处理字符串
详细见《文件操作-输入输出函数-1(getchar,scanf,gets,fgets,puts,fputs,格式控制).txt》
puts
fputs
gets
fgets
原型:
int puts(const char *s);
int fputs(const char *s, FILE *stream);
char *gets(char *s);
char *fgets(char *s, int size, FILE *stream);
说明:
puts() writes the string s and a trailing newline to stdout.会多输出一个'\n'
fputs() writes the string s to stream, without its trailing ’\0’.所以在输出的文件中没有'\0'字符
返回值:
puts() and fputs() return a non-negative number on success, or EOF on error.具体的返回值看《文件操作-输入输出函数-1(getchar,scanf,gets,fgets,puts,fputs,格式控制).txt》
gets() and fgets() return s on success, and NULL on error or when end of file occurs while no characters have been read.
----------格式化方式读写【谭浩强-C语言】
int fscanf(FILE *stream, const char *format, ...);
int fprintf(FILE *stream, const char *format, ...);
使用同scanf和printf
说明:(谭浩强)在输入时要将文件中的ASCII码转换为二进制形式再保存在内存变量中,输出是要将内存中的二进制形式
转换成字符,要花费较多时间。(猜测:fgetc、fgets等函数也同样)
----------用二进制方式向文件读写数据【谭浩强-C语言】
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
说明:size为单元的字节数,nmemb为单元个数
说明:和fscanf和fprintf的处理方式不同的是,将数据原封不动、不加转换地读入内存或写入磁盘文件
----------文件的随机读写【谭浩强-C语言】
void rewind(FILE *stream);//<文件位置标记>回到起始处(详见《EOF,fgetc,feof,ferror,clearerr,rewind.txt》)
int fseek(FILE *stream, long offset, int whence);//改变<文件位置标记>(详见《谭浩强-C语言》)
long ftell(FILE *stream);//测定<文件位置标记>的当前位置(详见《谭浩强-C语言》
----------文件读写错误处理(详见《谭浩强-C语言》、《EOF,fgetc,feof,ferror,clearerr,rewind.txt》)
void clearerr(FILE *stream);//使文件错误标志和文件结束标志为0
int feof(FILE *stream);//检测<文件位置标记>是否到达末尾
int ferror(FILE *stream);//是否出错