stdio 就是指 “standard input & output"(标准输入输出)
所以,源代码中如用到标准输入输出函数时,就要包含这个头文件!
例如c语言中的 printf("%d",i); scanf("%d",&i);等函数。
常用:
int getchar()//从标准输入设备读入一个字符
int putchar()//向标准输出设备写出一个字符
int scanf(char*format[,argument…])//从标准输入设备读入格式化后的数据
int printf(char*format[,argument…])//向标准输出设备输出格式化字符串
char gets(char*string)//从标准输入设备读入一个字符串
int puts(char*string)//向标准输出设备输出一个字符串
int sprintf(char*string,char*format[,…])//把格式化的数据写入某个字符串缓冲区
头文件
1、类型:
FILE 它是一个对象类型,可以记录控制流需要的所有信息,包括它的文件定位符、指向相关的缓冲的指针、记录是否发生了读/写错误的错误指示符和记录文件是否结束的文件结束符。fpos_t 它是一个对象类型,可以唯一指定文件中的每一个位置所需的所有信息。
size_t 这是无符号整数类型,它是sizeof关键字的结果。
2、宏:
NULL 这个宏是一个空指针常量的值。
_IOFBF、_IOLBF、IONBF 这些宏扩展了带有特定值的整形常量表达式(它们展开为具有不同值的整数常量表达式),适合作为函数setvbuf的第三个参数使用。
BUFSIZ 这个宏是一个整数,该整数代表了setbuf函数使用的缓冲区大小。
EOF 这个宏是一个表示已经到达文件结束的负整数。
FOPEN_MAX 这个宏是一个整数,该整数代表了系统可以同时打开的文件数量。
FILENAME_MAX 这个宏是一个整数,该整数代表了字符数组可以存储的文件名的最大长度。
L_tmpnam 这个宏是一个整数,该整数代表了字符数组可以存储的由 tmpnam 函数创建的临时文件名的最大长度。
SEEK_CUR、SEEK_END 和 SEEK_SET 它们展开为具有不同值得整数常量表达式,适合作为fseek函数的第三个参数使用。
TMP_MAX 这个宏是 tmpnam 函数可生成的独特文件名的最大数量。
stderr、stdin 和 stdout 这些宏是指向 FILE 类型的指针,分别对应于标准错误、标准输入和标准输出流。
3、函数:
3.1函数remove
int remove(const char *filename);
说明:删除给定的文件名 filename,以便它不再被访问。
返回值:成功返回0;失败返回非0,在新名字的文件存在的情况下,这个文件的名字任是原始的名字。
3.2函数tmpfile
FILE *tmpfile(void);
说明:以二进制更新模式(wb+)创建临时文件。
返回值:如果成功返回一个指向被创建的临时文件的流指针;如果文件未被创建,则返回NULL
3.3函数tmpname
char *tmpname(char *s);
说明:生成并返回一个有效的临时文件名,该文件名之前是不存在的。
参数:s是一个指向字符数组的指针,其中,临时文件名将被存储为 C 字符串。
返回值:一个指向 C 字符串的指针,该字符串存储了临时文件名。如果 str 是一个空指针,则该指针指向一个内部缓冲区,缓冲区在下一次调用函数时被覆盖。如果 str 不是一个空指针,则返回 str。如果函数未能成功创建可用的文件名,则返回一个空指针。
3.4函数fclose
int fclose(FILE *stream);
说明:关闭流 stream。刷新所有的缓冲区。
参数:这是指向 FILE 对象的指针,该 FILE 对象指定了要被关闭的流。
返回值:如果流成功关闭,则该方法返回零。如果失败,则返回 EOF。
3.5函数fflush
int fflush(FILE *stream);
说明:刷新流 stream 的输出缓冲区。
参数:这是指向 FILE 对象的指针,该 FILE 对象指定了一个缓冲流。
返回值:如果成功,该函数返回零值。如果发生错误,则返回 EOF,且设置错误标识符(即
feof)。
3.6函数fopen
FILE *fopen(const char *filename,const char *mode);
说明:使用给定的模式 mode 打开 filename 所指向的文件。
参数:filename是 C 字符串,包含了要打开的文件名称。
mode 是 C 字符串,包含了文件访问模式。
"r" 打开一个用于读取的文件。该文件必须存在。
"w" 创建一个用于写入的空文件。如果文件名称与已存在的文件相同,则会删除
已有文件的内容,文件被视为一个新的空文件。
"a" 追加到一个文件。写操作向文件末尾追加数据。如果文件不存在,则创建文
件。
"r+" 打开一个用于更新的文件,可读取也可写入。该文件必须存在。
"w+" 创建一个用于读写的空文件。
"a+" 打开一个用于读取和追加的文件。
返回值:该函数返回一个 FILE 指针。否则返回 NULL,且设置全局变量 errno 来标识错误。
3.7函数freopen
FILE *freopen(const char *filename,const char *mode,FILE *stream);
说明:把一个新的文件名 filename 与给定的打开的流 stream 关联,同时关闭流中的旧文件。
参数:filename是 C 字符串,包含了要打开的文件名称。mode是 C 字符串,包含了文件访问模式。
返回值:如果文件成功打开,则函数返回一个指针,指向用于标识流的对象。否则,返回空指针。
3.8函数setbuf
void setbuf(FILE *stream,char *buf);
说明:定义流 stream 应如何缓冲。
参数:stream是指向 FILE 对象的指针,该 FILE 对象标识了一个打开的流。buf是分配给用户的缓冲,它的长度至少为 BUFSIZ 字节,BUFSIZ 是一个宏常量,表示数组的长度。
返回值:该函数不返回任何值。
3.9函数setvbuf
int setvbuf(FILE *stream,char *buf,int mode,size_t size);
说明:定义流 stream 应如何缓冲。
参数:stream是指向 FILE 对象的指针,该 FILE 对象标识了一个打开的流。buffer是分配给用户的缓冲。如果设置为 NULL,该函数会自动分配一个指定大小的缓冲。size是缓冲的大小,以字节为单位。mode 指定了文件缓冲的模式_IOFBF 全缓冲:对于输出,数据在缓冲填满时被一次性写入。对于输入,缓冲会在请求输入且缓冲为空时被填充。
_IOLBF 行缓冲:对于输出,数据在遇到换行符或者在缓冲填满时被写入,具体视情况而定。
对于输入,缓冲会在请求输入且缓冲为空时被填充,直到遇到下一个换行符。
_IONBF 无缓冲:不使用缓冲。每个 I/O 操作都被即时写入。buffer 和 size 参数被忽略。
返回值:如果成功,则该函数返回 0,否则返回非零值。
3.10函数fprintf
int fprintf(FILE *stream,const char *format,...);
说明:发送格式化输出到流 stream 中。
参数:stream是指向 FILE 对象的指针,该 FILE 对象标识了流。format是 C 字符串,包含了要被写入到流 stream 中的文本。它可以包含嵌入的 format 标签,format 标签可被随后的附加参数中指定的值替换,并按需求进行格式化。
返回值:如果成功,则返回写入的字符总数,否则返回一个负数。
3.11函数fscanf
int fscanf(FILE *stream,const char *format,...);
说明:从流 stream 读取格式化输入。
参数:stream是指向 FILE 对象的指针,该 FILE 对象标识了流。format -- 这是 C 字符串,包含了以下各项中的一个或多个:空格字符、非空格字符 和 format 说明符。
返回值:如果成功,该函数返回成功匹配和赋值的个数。如果到达文件末尾或发生读错误,则返回 EOF。
注:可能发生缓冲区溢出
3.12函数printf
int printf(const char *format,...);
说明:发送格式化输出到标准输出 stdout。
参数:format是字符串,包含了要被写入到标准输出 stdout 的文本。
返回值:如果成功,则返回写入的字符总数,否则返回一个负数。
3.13函数scanf
int scanf(const char *format,...);
说明:从标准输入 stdin 读取格式化输入。
参数:format是 C 字符串,包含了以下各项中的一个或多个:空格字符、非空格字符 和
format 说明符。
返回值:如果成功,该函数返回成功匹配和赋值的个数。如果到达文件末尾或发生读错误,则返回 EOF。
注:可能发生缓冲区溢出
3.14函数sprintf
int sprintf(char *s,const char *format,...);
说明:发送格式化输出到字符串。
参数:s是指向一个字符数组的指针,该数组存储了 C 字符串。format是字符串,包含了要被写入到字符串 s 的文本。
返回值:如果成功,则返回写入的字符总数,不包括字符串追加在字符串末尾的空字符。如果失败,则返回一个负数。
注:可能发生缓冲区溢出
3.15函数sscanf
int sscanf(const char *s,const char *format,...);
说明:从字符串读取格式化输入。
参数:s是 C 字符串,是函数检索数据的源。format -- 这是 C 字符串,包含了以下各项中
的一个或多个:空格字符、非空格字符 和 format 说明符。
返回值:如果成功,该函数返回成功匹配和赋值的个数。如果到达文件末尾或发生读错误,则返回 EOF。
注:可能发生缓冲区溢出
3.16函数vfprintf
int vfprintf(FILE *stream,const char *format,va_list arg);
说明:使用参数列表发送格式化输出到流 stream 中。
参数:stream是指向 FILE 对象的指针,该 FILE 对象标识了流。format是 C 字符串,包含了要被写入到流 stream 中的文本。它可以包含嵌入的 format 标签,format 标签可被随后的附加参数中指定的值替换,并按需求进行格式化。
返回值:如果成功,则返回写入的字符总数,否则返回一个负数。
3.17函数vprintf 返回值:如果成功,则返回写入的字符总数,否则返回一个负数。 3.18函数vsprintf 返回值:如果成功,则返回写入的字符总数,否则返回一个负数。 注:可能发生缓冲区溢出 3.19函数fgetc 3.20函数fgets 3.21函数fputc 3.22函数fputs 3.23函数getc 3.24函数getchar 3.25函数gets 注:可能发生缓冲区溢出 / int main(int argc,char *argv[]) printf("%s---%dn",dest,flag); 结果: / 3.26函数putc 3.27函数putchar 3.28函数puts 3.29函数ungetc 3.30函数fread 3.31函数fwrite 3.32函数fgetpos 3.33函数fseek 3.34函数fsetpos 3.35函数ftell 3.36函数rewind 3.37函数clearerr 3.38函数feof 3.39函数ferror 3.40函数perror
int vprintf(const char *format,va_list arg);
说明:使用参数列表发送格式化输出到标准输出 stdout。
参数:format -- 这是字符串,包含了要被写入到标准输出 stdout 的文本。arg是一个表示可变参数列表的对象。这应被
int vsprintf(char *s,const char *format,va_list arg);
说明:使用参数列表发送格式化输出到字符串。
参数:str是指向一个字符数组的指针,该数组存储了 C 字符串。ormat是字符串,包含了要被写入到字符串 str 的文本。arg是一个表示可变参数列表的对象。
int fgetc(FILE *stream);
说明:从指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动。
参数:stream是指向 FILE 对象的指针,该 FILE 对象标识了要在上面执行操作的流。
返回值:该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回 EOF。
char *fgets(char *s,int n,FILE *stream);
说明:从指定的流 stream 读取一行,并把它存储在 s 所指向的字符串内。当读取 (n-1) 个字符时,或者读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。
参数:s是指向一个字符数组的指针,该数组存储了要读取的字符串。n是要读取的最大字符数(包括最后的空字符)。通常是使用以 s 传递的数组长度。stream是指向 FILE 对象的指针,该 FILE 对象标识了要从中读取字符的流。
返回值:如果成功,该函数返回相同的 str 参数。如果到达文件末尾或者没有读取到任何字符,str 的内容保持不变,并返回一个空指针。
如果发生错误,返回一个空指针。
int fputc(int c,FILE *stream);
说明:把参数 char 指定的字符(一个无符号字符)写入到指定的流 stream 中,并把位置标识符往前移动。
参数:c是要被写入的字符。该字符以其对应的 int 值进行传递。stream是指向 FILE 对象的指针,该 FILE 对象标识了要被写入字符的流。
返回值:如果没有发生错误,则返回被写入的字符。如果发生错误,则返回 EOF,并设置错误标识符。
int fputs(const char *s,FILE *stream);
说明:把字符串写入到指定的流 stream 中,但不包括空字符。
参数:s是一个数组,包含了要写入的以空字符终止的字符序列。stream是指向 FILE 对象的指针,该 FILE 对象标识了要被写入字符串的流。
返回值:该函数返回一个非负值,如果发生错误则返回 EOF。
int getc(FILE *stream);
说明:从指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动。
参数:stream是指向 FILE 对象的指针,该 FILE 对象标识了要在上面执行操作的流。
返回值:该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末或
发生读错误,则返回 EOF。
int getchar(void);
说明:从标准输入 stdin 获取一个字符(一个无符号字符)。
返回值:该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回 EOF。
char *gets(char *s);
说明:从标准输入 stdin 读取一行,并把它存储在 str 所指向的字符串中。当读取到换行符
时,或者到达文件末尾时,它会停止,具体视情况而定。
参数:str是指向一个字符数组的指针,该数组存储了 C 字符串。
返回值:如果成功,该函数返回 str。如果发生错误或者到达文件末尾时还未读取任何字符,则返回 NULL。
例:
#include
#include
{undefined
int flag=0;
char dest[10];
gets(dest);
return 0;
}
gcc -o t test.c
./t
aaaaaaaaaaaaaa
aaaaaaaaaaaaaa---24929
int putc(int c,FILE *stream);
说明:把参数 char 指定的字符(一个无符号字符)写入到指定的流 stream 中,并把位置标识符往前移动。
参数:c是要被写入的字符。该字符以其对应的 int 值进行传递。stream是指向 FILE 对象的指针,该 FILE 对象标识了要被写入字符的流。
返回值:该函数以无符号 c 强制转换为 int 的形式返回写入的字符,如果发生错误则返回
EOF。
int putchar(int c);
说明:把参数 char 指定的字符(一个无符号字符)写入到标准输出 stdout 中。
参数:c是要被写入的字符。该字符以其对应的 int 值进行传递。
返回值:该函数以无符号 c强制转换为 int 的形式返回写入的字符,如果发生错误则返回 EOF。
int puts(const char *s);
说明:把一个字符串写入到标准输出 stdout,直到空字符,但不包括空字符。换行符会被追加到输出中。
参数:str是要被写入的 C 字符串。
返回值:如果成功,该函数返回一个非负值,如果发生错误则返回 EOF。
int ungetc(int c,FILE *stream);
说明:把字符 char(一个无符号字符)推入到指定的流 stream 中,以便它是下一个被读取到的字符。
参数:c是要被推入的字符。该字符以其对应的 int 值进行传递。stream是指向 FILE 对象的指针,该 FILE 对象标识了输入流。
返回值:如果成功,则返回被推入的字符,否则返回 EOF,且流 stream 保持不变。
size_t fread(void *ptr,size_t size,size_t nmemb,FILE *stream);
说明:从给定流 stream 读取数据到 ptr 所指向的数组中。
参数:ptr是指向带有最小尺寸 size*nmemb 字节的内存块的指针。size是要读取的每个元素的大小,以字节为单位。nmemb是元素的个数,每个元素的大小为 size 字节。stream是指向FILE 对象的指针,该 FILE 对象指定了一个输入流。
返回值:成功读取的元素总数会以 size_t 对象返回,size_t 对象是一个整型数据类型。如果总数与 nmemb 参数不同,则可能发生了一个错误或者到达了文件末尾。
size_t fwrite(const void *ptr,size_t size,size_t nmemb,FILE *stream);
说明:把 ptr 所指向的数组中的数据写入到给定流 stream 中。
参数:ptr是指向要被写入的元素数组的指针。size是要被写入的每个元素的大小,以字节为单位。nmemb是元素的个数,每个元素的大小为 size 字节。stream是指向 FILE 对象的指针,该FILE 对象指定了一个输出流。
返回值:如果成功,该函数返回一个 size_t 对象,表示元素的总数,该对象时一个整型数据类型。如果该数字与 nmemb 参数不同,则会显示一个错误。
int fgetpos(FILE *stream,fpos_t *pos);
说明:获取流 stream 的当前文件位置,并把它写入到 pos
参数:stream是指向 FILE 对象的指针,该 FILE 对象标识了流。pos是指向 fpos_t 对象的指针。
返回值:如果成功,该函数返回零。如果发生错误,则返回非零值。
int fseek(FILE *stream,long int offset,int whence);
说明:设置流 stream 的文件位置为给定的偏移 offset,参数 offset 意味着从给定的
whence 位置查找的字节数。
参数:stream是指向 FILE 对象的指针,该 FILE 对象标识了流。
offset是相对 whence 的偏移量,以字节为单位。
whence是表示开始添加偏移 offset 的位置。它一般指定为下列常量之一:
SEEK_SET 文件的开头
SEEK_CUR 文件指针的当前位置
SEEK_END 文件的末尾
返回值:如果成功,则该函数返回零,否则返回非零值。
int fsetpos(FILE *stream,const fpos_t *pos);
说明:设置给定流 stream 的文件位置为给定的位置。参数 pos 是由函数 fgetpos 给定的位置。
参数:stream是指向 FILE 对象的指针,该 FILE 对象标识了流。
pos是指向 fpos_t 对象的指针,该对象包含了之前通过 fgetpos 获得的位置。
返回值:如果成功,该函数返回零值,否则返回非零值,并设置全局变量 errno 为一个正值,该值可通过 perror 来解释。
long int ftell(FILE *stream);
说明:返回给定流 stream 的当前文件位置。
参数:stream是指向 FILE 对象的指针,该 FILE 对象标识了流。
返回值:该函数返回位置标识符的当前值。如果发生错误,则返回 -1L,全局变量 errno 被设置为一个正值。
void rewind(FILE *stream);
说明:设置文件位置为给定流 stream 的文件的开头。
参数:stream是指向 FILE 对象的指针,该 FILE 对象标识了流。
返回值:该函数不返回任何值。
void clearerr(FILE *stream);
说明:清除给定流 stream 的文件结束和错误标识符。
参数:stream是指向 FILE 对象的指针,该 FILE 对象标识了流。
返回值:这不会失败,且不会设置外部变量 errno,但是如果它检测到它的参数不是一个有效的流,则返回 -1,并设置 errno 为 EBADF。
int feof(FILE *stream);
说明:测试给定流 stream 的文件结束标识符。
参数:stream是指向 FILE 对象的指针,该 FILE 对象标识了流。
返回值:当设置了与流关联的文件结束标识符时,该函数返回一个非零值,否则返回零。
int ferror(FILE *stream);
说明:测试给定流 stream 的错误标识符。
参数:stream是指向 FILE 对象的指针,该 FILE 对象标识了流。
返回值:如果设置了与流关联的错误标识符,该函数返回一个非零值,否则返回一个零值。
void perror(const char *s);
说明:把一个描述性错误消息输出到标准错误 stderr。首先输出字符串 str,后跟一个冒号,然后是一个空格。
参数:str是 C 字符串,包含了一个自定义消息,将显示在原本的错误消息之前。
返回值:该函数不返回任何值.
上一篇:单片机按键设计的四个方案详解
下一篇:#include<ctype.h>中包含的函数说明
推荐阅读最新更新时间:2024-11-01 00:52
设计资源 培训 开发板 精华推荐
- 基于ESP32物联网时钟项目
- 【训练营】仿生电子狗儿
- EVAL-AD1953EB,家庭影院 24 位音频处理器 AD1953 评估板
- #第七届立创电赛#桌面电源
- LTC3621HMS8E-25 1.2V 输出、同步至 600kHz、强制连续模式同步降压型稳压器的典型应用
- UM10341,SSL2101 12W 电源可调光 LED 驱动器的演示板
- LT8304ES8E 18V 至 80Vin、5Vout 隔离反激式转换器的典型应用电路
- VAR-DVK-MX6_AO,基于 VAR-SOM-MX6 的开发套件,安装了 android
- ADR421 超精密、低噪声、2.048 Vout XFET 电压基准作为可编程电流源的典型应用
- LT2940IMS 交流电源和电流监视器的典型应用电路
- 电子硬件工程师要求掌握的东西
- 《单片机C语言程序设计实训100例——基于8051+Proteus仿真》案例压缩包
- 赏同行视频,投票赚芯币兑换定制3D打印玩偶!--是德印象测试微视频竞选开始啦~
- 写了一个关于TimeA的程序 鼠标一动灯就闪得快
- TMS320C6678系统设计中PCIECLK问题
- 汽车熄火OBD断电问题
- MSP430看门狗使用笔记&&低功耗模式下如何用看门狗监控程序跑飞
- EEWORLD大学堂----3——Automotive eCall & Telematics Demo
- 如何设置at91sam9263ek中的MATRIX和EBI0?才能使用EBI0的片选5?
- 吉利汽车爆胎预警和制动系统开发成功,性能优于TPMS、PAX