c++ - fstream 删除特定的开始到结束行

标签 c++ fstream ifstream

我是一个新手程序员,目前正在使用 cpp 制作一个小型家庭数据库,但我无法从列表中删除一个家庭...

我的列表看起来像这样

start-of-family 1
jim
joe
bob
sam
end-of-family 1
start-of-family 2
rob
max
end-of-family 2
start-of-family 3
sue
tom
kim
end-of-family 3

如果我想删除家庭 1,我会找到家庭开始 1 和家庭结束 1。然后运行一个循环,但是如果用户只输入一个 int 来表示家庭编号,我该如何找到它.另外,我如何让后续的家庭号码减去 1,以便家庭 2 为 1,家庭 3 为 2。

非常感谢

最佳答案

如果我正在做这个问题,我会首先将每个家庭变成一个名字 vector 。然后,我将创建一个包含这些家庭 vector 的 vector 。

结果看起来像这样:

{  
<(jim), (joe), (bob), (sam) >  
<(rob), (max) >  
<(sue), (tom), (kim) >  
}

然后,如果用户想要删除其中一个家庭,您可以使用 vector.remove(n),其中 n 是要删除的家庭的索引。

这听起来像是学校或课本作业。你接触过 vector 了吗?这些名字是从哪里来的?您是否将它们硬编码到列表中?或者从 .txt 文件中读取它们?您现在将它们存储在哪种列表结构中?

关于c++ - fstream 删除特定的开始到结束行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50871127/

相关文章:

c++ fstream 在 1 个函数之后不起作用(通过引用)

c++ - 如何在目录中以特定格式获取行的特定部分?

c++ - WebP 无损格式概述

c++ - 在列表中查找特定项目

c++ - 非常奇怪的行为 : Class with template constructor with only one argument

从 X 长度的文件读取二进制数据时 C++ 程序崩溃

c++ - 在 C++ 中将整数写入 .txt 文件

c++ - 由于 ifstream obj 导致的段错误。作为引用发送?

c++ - 读取字符到数组

c++ - inline的标准是什么