C/C++学习记录--标准库头文件stdio.h

多数与C语言输入输出相关的函数在<stdio.h>中定义(C++中的<cstdio>)。

常用总结,关于文件的各种使用另外单独学习:

1.    文件开关

       fopen, fclose

2.    文件读写

        fread, fwrite

3.    文件定位

        ftell,fseek,rewind

4.    格式化输入输出

       printf,fprintf,sprintf 

5.    非格式化输入输出

       getc/fgetc, putc/fputc,ungetc,fgets,fputs

6.    错误处理

        feof, ferror

7.    文件操作

         remove,rename,tmpfile

以下部分为转载:

1. 库变量

序号变量描述
1size_t这是无符号整数类型,它是 sizeof 关键字的结果。
2FILE这是一个适合存储文件流信息的对象类型。
3fpos_t这是一个适合存储文件中任何位置的对象类型。

2. 宏定义

下面是头文件 stdio.h 中定义的宏:

序号描述
1NULL这个宏是一个空指针常量的值
2_IOFBF、_IOLBF 和 _IONBF这些宏扩展了带有特定值的整型常量表达式,并适用于 setvbuf 函数的第三个参数。
3BUFSIZ这个宏是一个整数,该整数代表了 setbuf 函数使用的缓冲区大小。
4EOFEnd-of-File
5FOPEN_MAX这个宏是一个整数,该整数代表了系统可以同时打开的文件数量。
6FILENAME_MAX这个宏是一个整数,该整数代表了字符数组可以存储的文件名的最大长度。如果实现没有任何限制,则该值应为推荐的最大值。
7L_tmpnam这个宏是一个整数,该整数代表了字符数组可以存储的由 tmpnam 函数创建的临时文件名的最大长度。
8SEEK_CUR、SEEK_END 和 SEEK_SET这些宏是在These macros are used in the fseek 函数中使用,用于在一个文件中定位不同的位置。
9TMP_MAX这个宏是 tmpnam 函数可生成的独特文件名的最大数量。
10stderr、stdin 和 stdout这些宏是指向 FILE 类型的指针,分别对应于标准错误、标准输入和标准输出流。

3. 库函数

3.1 Operations on files:
序号函数描述补充描述
1int remove ( const char * filename );Deletes the file whose name is specified in filename.(永久删除文件)操作成功,返回0,否则返回非零
2int rename ( const char * oldname, const char * newname );Changes the name of the file or directory specified by oldname to newname.同上
3FILE * tmpfile ( void );以二进制更新模式(wb+)创建临时文件成功,返回临时文件, failure, NULL is returned.
4char * tmpnam ( char * str );生成并返回一个有效的临时文件名,该文件名之前是不存在的。成功,返回文件名,失败,返回NULL
3.2 File access:
序号函数描述补充描述
1int fclose ( FILE * stream );关闭流 stream。刷新所有的缓冲区。success,return 0,fail,return EOF
2FILE * fopen ( const char * filename, const char * mode );使用给定的模式 mode 打开 filename 所指向的文件success,return FILE*,fail,return NULL
3FILE * freopen ( const char * filename, const char * mode, FILE * stream );把一个新的文件名 filename 与给定的打开的流 stream 关联,同时关闭流中的旧文件。同上
4int fflush ( FILE * stream );刷新流 stream 的输出缓冲区。成功,返回0,失败返回EOF
5void setbuf ( FILE * stream, char * buffer );自定义控制流的缓冲 
6int setvbuf ( FILE * stream, char * buffer, int mode, size_t size );自定义缓冲流及缓冲模式成功,返回0,失败返回非零
3.3 Formatted input/output:
序号标签函数原语描述补充描述
1fprintfint fprintf ( FILE * stream, const char * format, … );格式化输出到指定流成功,返回写入的字符总数,否则返回负数
2printfint printf ( const char * format, … );格式化输出到标准输出流stdout成功,返回写入的字符总数,否则返回负数
3sprintfint sprintf ( char * str, const char * format, … );格式化输出到字符串缓冲区,并自动在末尾添加字符串结尾标识符’\0’成功,返回写入的字符总数(不包括自动添加的’\0’),否则,返回负数
4snprintf(C99)int snprintf ( char * s, size_t n, const char * format, … );格式化输出到字符串缓冲区,并自动在末尾添加字符串结尾标识符’\0’(设置单词最大写入字符个数)成功,返回写入的字符总数(不包括自动添加的’\0’),否则,返回负数
5fscanfint fscanf ( FILE * stream, const char * format, … );Read formatted data from stream成功,返回成功填充的变量总数,失败返回EOF
6scanfint scanf ( const char * format, … );Read formatted data from stdin同上
7sscanfint sscanf ( const char * s, const char * format, …);Read formatted data from string同上

可变参数操作函数:

序号标签描述
1vfprintfWrite formatted data from variable argument list to stream
2vfscanfRead formatted data from stream into variable argument list
3vprintfPrint formatted data from variable argument list to stdout
4vscanfRead formatted data into variable argument list
5vsnprintfWrite formatted data from variable argument list to sized buffer
6vsprintfWrite formatted data from variable argument list to string
7vsscanfRead formatted data from string into variable argument list
3.4 Character input/output:
序号标签函数原语描述补充描述
1fgetcint fgetc ( FILE * stream );Get character from stream成功,返回字符的ASCII码,否则返回EOF
2getcint getc ( FILE * stream );同上getc and fgetc are equivalent, except that getc may be implemented as a macro in some libraries
3getcharint getchar ( void );Get character from stdin成功,返回字符的ASCII码,否则返回EOF
4fgetschar * fgets ( char * str, int num, FILE * stream );Get string from stream从fp指向的文件中读取下一个输入行(包括换行符),并将它存放在字符数组中,最多可以读取maxline-1个字符,读取的行以’\0’结尾,不安全
5getschar * gets ( char * str );Get string from stdin读取字符串,欲换行符’\n’结束,并删除换行符,用fgets代替
6fputcint fputc ( int character, FILE * stream );Write character to stream成功,返回写入的字符,失败,返回EOF
7putcint putc ( int character, FILE * stream );同上putc and fputc are equivalent, except that putc may be implemented as a macro in some libraries
8putcharint putchar ( int character );Write character to stdout同上
9fputsint fputs ( const char * str, FILE * stream );Write string to stream成功,返回非负数,失败,返回EOF
10putsint puts ( const char * str );Write string to stdout(每行末尾自动添加换行符)同上
11ungetcint ungetc ( int character, FILE * stream );使字符c(转化为uchar型)被压入到指定输入流成功,返回压入的字符,失败,返回EOF
3.5 Direct input/output:
序号标签函数原语描述补充描述
1freadsize_t fread ( void * ptr, size_t size, size_t count, FILE * stream );Read block of data from stream成功,返回读取的元素总数,失败,返回0(可以用feof或ferror工具判断是出现错误还是到文件末尾)
2fwritesize_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );Write block of data to stream返回实际写入元素的个数,正常情况返回值等于count
3.6 File positioning:
序号标签函数原语描述补充描述
1fgetposint fgetpos ( FILE * stream, fpos_t * pos );Get current position in stream成功,返回0 ,否则返回非零
2fsetposint fsetpos ( FILE * stream, const fpos_t * pos );根据*pos中的位置设置当前文件的位置同上
3fseekint fseek ( FILE * stream, long int offset, int origin );重定位文件位置以便随机stream流同上
4ftelllong int ftell ( FILE * stream );返回当前流中的位置(同fgetpos)但其返回long int(小型文件),大型文件用fgetpos
5rewindvoid rewind ( FILE * stream );把流重置为起始位置相当于 fseek(stream,0L,SEEK_SET)
3.7 Error-handling:
序号标签函数原语描述补充描述
1clearerrvoid clearerr ( FILE * stream );Resets both the error and the eof indicators of the stream 
2feofint feof ( FILE * stream );检测是否到达文件尾到达结尾,返回非零,否则返回0
3ferrorint ferror ( FILE * stream );返回流的错误状态若错误标志被设置,返回非零,否则返回0
4perrorvoid perror ( const char * str );打印错误信息至stderr 

参考:http://www.cplusplus.com/reference/cstdio/ 
《C标准库》,P.J. Plauger 著 
《C语言参考手册》,Samuel P. Harbison III 等著


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值