前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C/C++学习记录--标准库头文件stdio.h

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

作者头像
用户7886150
修改于 2021-02-14 07:07:01
修改于 2021-02-14 07:07:01
9040
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: C++ vscanf()

多数与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-File5FOPEN_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 EOF2FILE * fopen ( const char * filename, const char * mode );使用给定的模式 mode 打开 filename 所指向的文件success,return FILE*,fail,return NULL3FILE * freopen ( const char * filename, const char * mode, FILE * stream );把一个新的文件名 filename 与给定的打开的流 stream 关联,同时关闭流中的旧文件。同上4int fflush ( FILE * stream );刷新流 stream 的输出缓冲区。成功,返回0,失败返回EOF5void 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成功,返回成功填充的变量总数,失败返回EOF6scanfint 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 stream2vfscanfRead formatted data from stream into variable argument list3vprintfPrint formatted data from variable argument list to stdout4vscanfRead formatted data into variable argument list5vsnprintfWrite formatted data from variable argument list to sized buffer6vsprintfWrite formatted data from variable argument list to string7vsscanfRead formatted data from string into variable argument list

3.4 Character input/output:

序号标签函数原语描述补充描述1fgetcint fgetc ( FILE * stream );Get character from stream成功,返回字符的ASCII码,否则返回EOF2getcint getc ( FILE * stream );同上getc and fgetc are equivalent, except that getc may be implemented as a macro in some libraries3getcharint getchar ( void );Get character from stdin成功,返回字符的ASCII码,否则返回EOF4fgetschar * 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成功,返回写入的字符,失败,返回EOF7putcint putc ( int character, FILE * stream );同上putc and fputc are equivalent, except that putc may be implemented as a macro in some libraries8putcharint putchar ( int character );Write character to stdout同上9fputsint fputs ( const char * str, FILE * stream );Write string to stream成功,返回非负数,失败,返回EOF10putsint 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(小型文件),大型文件用fgetpos5rewindvoid 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 );检测是否到达文件尾到达结尾,返回非零,否则返回03ferrorint ferror ( FILE * stream );返回流的错误状态若错误标志被设置,返回非零,否则返回04perrorvoid perror ( const char * str );打印错误信息至stderr 

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

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C/C++ (stdio.h)标准库详解
cstdio,在C语言中称为stdio.h。该库使用所谓的流与物理设备(如键盘、打印机、终端)或系统支持的任何其他类型的文件一起操作。
DevKevin
2024/03/19
1.1K0
C/C++ (stdio.h)标准库详解
stdio.h文件介绍
#include文件的目的就是把多个编译单元(也就是c或者cpp文件)公用的内容,单独放在一个文件里减少整体代码尺寸;或者提供跨工程公共代码。
用户7886150
2021/02/20
1K0
C语言的几个标准库
C 标准库的 assert.h头文件提供了一个名为 assert 的宏,它可用于验证程序做出的假设,并在假设为假时输出诊断消息。
云深无际
2021/04/14
3.8K0
C语言的几个标准库
[apue] 标准 I/O 库那些事儿
标准 IO 库自 1975 年诞生以来,至今接近 50 年了,令人惊讶的是,这期间只对它做了非常小的修改。除了耳熟能详的 printf/scanf,回过头来对它做个全方位的审视,看看到底优秀在哪里。
海海
2022/10/05
1.6K0
Linux内核编程--文件流与缓冲区
文件流是基于文件描述符来实现的,所以可以从文件流中提取并操作文件描述符,比如“int fileno(FILE*); fileno(file_stream)”。
Coder-ZZ
2022/05/09
2.9K0
Linux内核编程--文件流与缓冲区
C/CPP输入输出函数汇总分析
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
CtrlX
2023/03/21
1.9K0
C语言标准库函数大全(ctype、time 、stdio、stdlib、math、string)
上面只是简单的介绍函数原型和功能,如果想对函数进一步了解可以下载以下文档 (内含详解与实例):
全栈程序员站长
2022/09/13
5.4K0
C语言标准库函数大全(ctype、time 、stdio、stdlib、math、string)
c标准库总结
学习c语言十几年了,却从来没有完整的将c标准库看一看,我想在这一点上我是欠缺的。作为一个技术人员,无论什么时候都不能忘记自己最擅长的技能,这次借一个偶然的契机,翻一翻c标准库,希望以后自己在技术上越来越牛。
用户7886150
2021/02/25
1.5K0
文件操作
函数原型:void open(const char*filename,int mode,int access);      
瑾诺学长
2018/09/21
1.5K0
c++ 常用函数
#include <strstrea.h>   //该类不再支持,改用<sstream>中的stringstream
用户7886150
2021/02/05
6700
c++标准库cstdio文件
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
用户7886150
2021/02/13
8350
C++:cstdio 头文件详解
输入和输出操作也可以在C++实现,通过使用C标准输入和输出库(cstdio,在C语言中称为stdio.h)。
全栈程序员站长
2022/11/01
2.3K0
【C语言基础】:文件操作详解(后篇)
将字符写入流 将一个字符写入流并推进位置指示器。 字符被写入流的内部位置指示器所指示的位置,然后自动向前移动一个。
爱喝兽奶的熊孩子
2024/04/11
1720
【C语言基础】:文件操作详解(后篇)
揭秘C语言文件操作:文件读写、最佳实践、权限管理和安全策略
文件是计算机中存储数据的一种方式,它是一组相关数据的集合,可以包含文本、图像、音频、视频等各种类型的数据。文件可以存在于计算机的磁盘、固态存储器、网络等各种存储介质上。
Lion 莱恩呀
2024/07/27
4700
揭秘C语言文件操作:文件读写、最佳实践、权限管理和安全策略
实现HTTP协议Get、Post和文件上传功能——设计和模块
        之前写过一遍《使用WinHttp接口实现HTTP协议Get、Post和文件上传功能》,其中谈到了如何使用WinHttp接口实现Http的Get、Post和文件上传功能。后来发现蛮多人关注该技术的实现,于是我决定重新设计框架结构,梳理这块的知识并提供可供测试的方案。同时,该系列也将作为《VC开发Windows客户端软件之旅》中"网络"模块的一部分。(转载请指明出于breaksoftware的csdn博客)
方亮
2019/01/16
2.6K0
C/C++ 学习笔记六(文件系统、预处理)
Celebi
2017/08/24
1.4K0
C/C++ 学习笔记六(文件系统、预处理)
C/CPP输入输出函数汇总分析
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
CtrlX
2022/11/11
1.3K0
C++字符串输入函数小结
看了网上有人写的,不是很全,而且还有几处错误,所以自己重新找了一下MSDN中的相关内容。
用户7886150
2021/02/17
8710
C语言——文件操作
磁盘上的文件是文件。 但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件
小李很执着
2024/06/15
2160
C语言——文件操作
【C】文件操作
我们可以使用fopen()创建一个新的或者打开一个文件, 文件信息会保存在一个FILE类型的指针中, 该函数的原型为:
零式的天空
2022/03/02
6340
相关推荐
C/C++ (stdio.h)标准库详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档