我正在尝试编写一个模拟书店程序。该程序是从一个输入文件读取数据并将其写入一个输出文件。我有几个限制。我只能使用一个输入文件和一个输出文件。我必须使用两个for循环。一个用于文件中列出的五个客户中的每一个,另一个用于他们将购买的每本书,最多可以有5本书。从文件中间读取输入C++使用for循环
第一个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,鳍,采取数据时,它开始从文件的开头读取每个循环的第一次迭代后,但是。我需要它从前面的迭代完成的地方读取。我了解ios:输出的应用程序。
样本输入文件
user name
address
number of books
book1
price1
book2
user name2
address
number of books
book2.1
price2.1
等有实际上是比更多的信息。任何帮助将不胜感激。对于新问题抱歉。在发布之前我搜索并搜索过。
我将fin.open(input.txt)和fout.open(output.txt)移到了外部for循环,现在它只能读取第一个循环内部的内容 – user1768079
你好。再次回来。道歉。有效。我还剩下一个人,剩下我还没有搬走。老实说,这就是我首先想到的,但要引用说明:“外部FOR循环将为每个客户重复执行,内部FOR循环将重复由外部循环客户购买的每本书。由于数据在循环外部不可用,因此打开并关闭循环内的每个文件。“ – user1768079
@ user1768079说明听起来像垃圾给我的。 – john