本文介绍了C语言中的常用输入输出函数,包括标准库提供的printf、scanf等函数的功能和使用方法,帮助读者掌握基本的I/O操作。
C语言输入输出函数是标准库的一部分,用于处理文件、格式化数据以及字符串的读取与写入操作。这些功能在`stdio.h`头文件中定义。
1. `clearerr()` 函数:此函数清除文件流上的错误标志。
2. `feof()` 函数:它检测当前是否到达了输入或输出流的结尾。
3. `ferror()` 函数:用于检查与特定文件相关的错误状态是否存在。
4. `fflush()` 函数:清空缓冲区,确保所有先前写入的数据都被发送到目标设备或者存储位置。
5. `fgetc()` 函数:从打开的文件中读取一个字符。
6. `fgetpos()` 函数:获取当前流的位置指示符,并将其保存在一个`fpos_t`类型的变量里。
7. `fgets()` 函数:从输入流中读入字符串,直到遇到换行或达到指定的最大长度为止。
8. `fopen()` 函数:打开一个文件并返回指向该文件的指针。如果没有找到该文件,则返回NULL。
9. `fclose()` 函数:关闭由`FILE*`类型的指针所标识的流,并释放与之关联的所有资源。
10. `fprintf()` 函数:格式化输出数据到指定的流中,类似于标准C函数printf()但可以用于任何打开的文件或设备。
11. `fputc()` 函数:向一个已打开的文件写入单个字符。
12. `fputs()` 函数:将字符串写入到一个已经打开的输出文件或者stdout(标准输出)中。
13. `fread()` 函数:从指定流读取二进制数据块,返回实际读取的数据量。
14. `freopen()` 函数:关闭当前与指针关联的文件,并重新打开另一个具有相同模式的新文件或设备。
15. `fscanf()` 函数:格式化输入函数,类似于`printf()`但用于从指定流中获取数据而非标准输入。
16. `fseek()` 函数:改变一个已打开文件中的位置指示器。它可以用来跳转到特定的字节偏移量处。
17. `fsetpos()` 函数:设置当前文件的位置,类似于`fseek()`, 但它使用的是`fpos_t`类型而非长整型偏移值。
18. `ftell()` 函数:返回流当前位置相对于开始位置的距离(字节数)。
19. `fwrite()` 函数:向一个已打开的输出文件写入二进制数据块,返回实际写出的数据量。
20. `getc()` 和`getchar()` 函数:从输入流中读取下一个字符。这两个函数在功能上是等效的;区别在于后者专门用于标准输入(stdin)。
21. `gets()` 函数:从终端读入一行字符串,直到遇到换行符或EOF为止。(不推荐使用此函数)
22. `perror()` 函数:打印与最近发生的错误相关的消息到stderr流中。
23. `printf()`, `putc()`, 和`putchar()` 函数:用于控制台输出的格式化和非格式化字符/字符串写入操作。`putc()`及`putchar()`专门针对单个字符进行处理,而`printf()`则支持更复杂的格式化规则。
24. `puts()` 函数:将给定的字符串打印到标准输出流中。
25. `remove()`, 和`rename()` 函数:用于删除和重命名文件操作。如果成功执行了相应的任务,则返回0;否则,函数会根据失败的原因返回非零值。
26. `rewind()` 函数:将当前的文件指针设置为流开头的位置(即重新开始读取)。
27. `scanf()`, 和`sscanf()` 函数:从标准输入或字符串中解析格式化数据。前者用于控制台,后者则适用于内存中的缓冲区。
28. `sprintf()` 函数:将格式化的文本写入到指定的字符数组内(而不是输出流)。
29. `setbuf()`, 和`setvbuf()` 函数:允许程序员为文件流设置自己的缓冲机制或使用默认的。后者提供了更多控制选项,如定义缓冲区大小和类型等。
30. `tmpfile()` 函数:创建一个临时文件,并返回指向该文件的指针;当不再需要时会自动删除它。
31. `tmpnam()` 函数:生成一个新的唯一名称用于临时文件或目录。如果成功,则函数返回该字符串地址,否则为NULL。
32. `ungetc()` 函数:将一个字符放回输入队列中,以便下次调用读取操作时能够再次