我的程序中有一个用C ++编写的错误。它处理两个.txt文件。从一个(word.txt)导入值,并且必须过滤并将它们添加到另一个文件中 - text3.txt。
在txt文件word.txt中有以下条目:
if (thePlayer.position.y >= -216) {
runningAnimation = false
//be specific sprite
} else if (!runningAnimation) {
runningAnimation = true
//be specific animation
}
点«B«ENDL;应该将word.txt文本文件添加到具有特定顺序的text.txt文本文件中。首先是每个人都有“人”,然后每个人都有“狗”(“猫”不需要添加)。
目前,只有最后一个被添加到文件中,所有“狗”条目。
你能帮我理解问题出在哪里吗?
Dora cat 7
John human 28
Bark dog 12
Steven human 56
Rex dog 15
谢谢。
答案 0 :(得分:0)
在两个调用中使用相同的输出文件。所以以前的所有人类记录都被狗的记录所取代。打开文件时使用std::ios::app
以便在结尾处追加。
#include <fstream>
std::ofstream out;
// std::ios::app is the open mode "append" meaning
// new data will be written to the end of the file.
out.open("myfile.txt", std::ios::app);
std::string str = "I am here.";
out << str;
建议:您应该使用C ++提供的机制,例如std::string
,并避免使用全局变量和指针。另外,清楚地命名变量。通过这样做,您可以至少将代码简化10倍。
此外,并非所有人都懂俄语,因此请更改提交的代码,以便每个人都能理解 chelovek human 。