gpt4 book ai didi

c++ - Fstream管理问题

转载 作者:行者123 更新时间:2023-11-30 03:43:46 25 4
gpt4 key购买 nike

我对如何使用fstream 管理文件流感到有点困惑。我将在下面列出我的主要问题:

1)首先,为什么要调用构造函数fstream file(file_name);或者fstream file; file.open(file_name); 没有任何标志,如 ios::inios::out 不会创建任何新文件?

2) 假设我想对输入和输出使用同一个文件。我可以做类似 fstream file 的操作,然后调用 file.open(file_name, ios::out)file.open(file_name, ios::in) 当我需要单独使用它进行输出或输入操作时。但是如果我需要同时进行输入和输出怎么办?例如,我需要从文件中读取并在读取时发现特定的单词或数字时替换一行或一个字符。是否可以为已创建的文件调用 file.open(file_name)(并且不指定任何标志)?它允许我对同一个流进行读/写操作吗?

最佳答案

这是我的答案:

1) First of all, why calling the constructors fstream file(file_name); or fstream file; file.open(file_name); without any flag like ios::in or ios::out doesn't create any new file?

在写操作发生之前不需要创建文件。这是延迟处理。

当默认情况下可能以读取 权限打开文件时,无需创建文件。据我所知,以只读方式打开文件永远不会创建文件。

阅读这些案例的默认模式。

2) Let's say i want to use the same file for input and output. I can do something like fstream file and then call file.open(file_name, ios::out) or file.open(file_name, ios::in) when I need to use it for output or input operation separately. But what if I need to do input and output at the same time?

如果需要对同一个文件进行读写,可以同时使用ios::inios::out两种方式打开:ios: :出| ios::在。这是通知您要使用相同的流(文件)写入和读取的流。至少从 C 语言被发明以来,这是允许的。

顺便说一句,你应该“同时”澄清一下。大多数事情在计算机上都是顺序的,除非涉及多个处理器(内核)。大多数文件是顺序的,这意味着只有一个源可以读取或写入文件。尽管有一些异常(exception)。

许多文件已被视为数组。您可以多次阅读和编写同一部分。这称为随机访问,而设备是顺序访问

关于c++ - Fstream管理问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35899874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com