freopen函数是c语言的,C 库函数 - freopen()

C库函数`freopen()`用于将已有流与新的文件关联,实现文件重定向。该函数接受文件名、访问模式和流指针作为参数,可以用于读写或追加模式。当成功打开文件后,流将指向新的文件,原有文件会被关闭或清空。示例代码展示了如何将标准输出重定向到file.txt,并在之后读取该文件内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# C 库函数 - freopen()

## 描述

C 库函数 **FILE *freopen(const char *filename, const char *mode, FILE *stream)** 把一个新的文件名 **filename** 与给定的打开的流 **stream** 关联,同时关闭流中的旧文件。

## 声明

下面是 freopen() 函数的声明。

```

FILE *freopen(const char *filename, const char *mode, FILE *stream)

```

## 参数

* **filename** -- 这是 C 字符串,包含了要打开的文件名称。

* **mode** -- 这是 C 字符串,包含了文件访问模式,模式如下:

| 模式 | 描述 |

| --- | --- |

| "r" | 打开一个用于读取的文件。该文件必须存在。 |

| "w" | 创建一个用于写入的空文件。如果文件名称与已存在的文件相同,则会删除已有文件的内容,文件被视为一个新的空文件。 |

| "a" | 追加到一个文件。写操作向文件末尾追加数据。如果文件不存在,则创建文件。 |

| "r+" | 打开一个用于更新的文件,可读取也可写入。该文件必须存在。 |

| "w+" | 创建一个用于读写的空文件。 |

| "a+" | 打开一个用于读取和追加的文件。 |

* **stream** -- 这是指向 FILE 对象的指针,该 FILE 对象标识了要被重新打开的流。

## 返回值

如果文件成功打开,则函数返回一个指针,指向用于标识流的对象。否则,返回空指针。

## 实例

下面的实例演示了 freopen() 函数的用法。

```

#include

int main ()

{

FILE *fp;

printf("该文本重定向到 stdout\n");

fp = freopen("file.txt", "w+", stdout);

printf("该文本重定向到 file.txt\n");

fclose(fp);

return(0);

}

```

让我们编译并运行上面的程序,这将发送下列行到标准输出 STDOUT,因为起初我们并没有打开标准输出:

```

该文本重定向到 stdout

```

在调用 **freopen()** 之后,它会关联标准输出 STDOUT 到文件 **file.txt**,无论我们在标准输出 STDOUT 中写了什么都会被写入 file.txt,所以文件 file.txt 将有以下内容。

```

该文本重定向到 file.txt

```

现在让我们使用下面的程序查看上面文件的内容:

```

#include

int main ()

{

FILE *fp;

int c;

fp = fopen("file.txt","r");

while(1)

{

c = fgetc(fp);

if( feof(fp) )

{

break ;

}

printf("%c", c);

}

fclose(fp);

return(0);

}

```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值