gpt4 book ai didi

c++ - c++ 使用for循环从文件中间读取输入

转载 作者:搜寻专家 更新时间:2023-10-31 01:13:05 25 4
gpt4 key购买 nike

我正在尝试编写一个模拟书店程序。该程序是从一个输入文件中读取数据并将其写入一个输出文件。我有几个限制。我只能使用一个输入文件和一个输出文件。我必须使用两个 for 循环。文件中列出的五个客户中的每一个,另一个是他们要购买的每本书,最多可能购买 5 本书。

第一个 for 循环输入客户信息和要购买的书籍数量(因此下一个 for 循环将知道要迭代多少次)。第二个循环获取有关书籍的信息。

问题:我知道如何防止输出文件覆盖自身,但我如何让输入文件从循环的最后一次迭代停止的地方读取。

出于某种原因,当我尝试发布我的代码时,它正在重新格式化它,并添加了不应该出现的字符。但这是我正在尝试做的伪代码。

for(count=1; count<=5; count++)
{
fin.open("input.txt");
fin << user information(including name, address and number of books)
fout.open("output.txt" ios::app);
fout >> user information

for(count1=1; count1<=numbbooks; count1++)
{
fin << book information(Name, Author, Price)
fout >> book information
}

我知道如何使用 getline、fin 来获取数据,但是在每个循环的第一次迭代之后,它开始从文件的开头读取。我需要它从上一次迭代完成的地方读取。我理解 ios:app 的输出。

示例输入文件

user name
address
number of books
book1
price1
book2
user name2
address
number of books
book2.1
price2.1

等实际上有比这更多的信息。任何帮助将不胜感激。抱歉这个新问题。在发帖之前我搜索了又搜索。

最佳答案

很简单,不要每次循环都打开和关闭它。在外循环之前打开一次,在同一循环之后关闭一次。

当您打开文件时,读/写位置通常设置为文件的开头(ios::app 是一个异常(exception),您已经知道了)。

关于c++ - c++ 使用for循环从文件中间读取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13029399/

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