流是一个连接输入源与输入缓冲区、输出缓冲区与输出目的地的管道。如果不使用缓冲区,流则直接连通输入源和输出目的地。磁盘上的文件是常用的输入源和输出目的地。
文件指针
C程序中的流是通过文件指针访问的,其类型为FILE *。FILE是在stdio.h中定义的类型。虽然操作系统通常会限制在任意时刻打开的流的数量,但可以声明任意数量的FILE *类型变量。
在stdio.h中提供了3个文件指针stdin,stdout和stderr,分别用以访问标准输入流、标准输出流和标准错误流。标准输入流的输入源为键盘,标准输出流和标准错误流的输出目的地为屏幕。
| 文件指针 | 流 | 默认含义 |
|---|---|---|
stdin |
标准输入 | 键盘 |
stdout |
标准输出 | 屏幕 |
stderr |
标准错误 | 屏幕 |
scanf、printf、putchar、getchar、puts和gets都是通过stdin输入,通过stdout输出的。
某些操作系统通过重定向机制改变标准流的默认含义。输入重定向将stdin访问的流的输入源由键盘改为文件,输出重定向将stdout访问的流的输出目标由屏幕更改为文件。在Linux系统中,输入重定向是使用<后接输入文件名实现的,而输出重定向是使用>后接输出文件名实现的,同时还可以将输出重定向和输入重定向合并使用,其使用格式为:
运行程序名 <输入文件名
运行程序名 >输出文件名
运行程序名 <输入文件名 >输出文件名
为了避免在重定向时将错误信息也输入到文件中,使用stderr输出错误信息。
/*************************************
* redirect.c *
* *
* 输入输出重定向 *
*************************************/
#include <stdio.h>
int main()
{
int x = 0;
int y = 0;
printf("输入两个整数: ");
scanf("%d%d", &x, &y);
printf("x = %d, y = %d\n", x, y);
return

本文介绍了C语言中的文件流概念,包括文件指针的使用,文本和二进制文件的区别,以及如何进行文件的打开、关闭、重定向等操作。文中详细讲解了fopen、fclose、rewind等函数的用法,并提到了缓冲区管理以及删除和重命名文件的函数。


被折叠的 条评论
为什么被折叠?



