我正在尝试编写一个模拟书店程序。该程序是从一个输入文件中读取数据并将其写入一个输出文件。我有几个限制。我只能使用一个输入文件和一个输出文件。我必须使用两个 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
等等。实际上还有比这更多的信息。任何帮助将不胜感激。对不起,新手的问题。我在这里发帖之前搜索和搜索。