C++ 写入文件时不显示所有内容c++;
不知道我哪里出错了 我正在尝试用C++编写一个文件。 代码如下:C++ 写入文件时不显示所有内容c++;,c++,C++,不知道我哪里出错了 我正在尝试用C++编写一个文件。 代码如下: struct Student { int id; std::string name; double mark; double priority; bool operator < (const Student & s) const { return (priority < s.priority); } void print() const { std
struct Student {
int id;
std::string name;
double mark;
double priority;
bool operator < (const Student & s) const {
return (priority < s.priority);
}
void print() const {
std::ofstream myfile;
myfile.open ("result.txt",std::ios::out);
myfile << "id: (";
myfile<< id;
myfile << ") ";
myfile<<"name: ";
myfile<< name;
myfile << " : ";
myfile<< " Priority value: ";
myfile << priority;
myfile <<"\n";
// myfile.close();
std::cout << "name: " << id << ") " << name << " : " << " Priority value: " << priority << std::endl;
}
};
void printPriorityQ(std::priority_queue < Student > q) {
while (!q.empty()) {
q.top().print();
q.pop();
}
std::cout << std::endl;
}
struct学生{
int-id;
std::字符串名;
双标记;
双重优先;
布尔运算符<(常数学生和s)常数{
返回(优先级 myfile您当前代码中的问题是,print()
函数每次调用时都会覆盖输出文件
一种不需要您使用ios::app的可能解决方案是更改函数的签名,如下所示:
void print(std::ofstream& myfile ) const {
myfile << "id: (";
myfile<< id;
myfile << ") ";
myfile<<"name: ";
myfile<< name;
myfile << " : ";
myfile<< " Priority value: ";
myfile << priority;
myfile <<"\n";
std::cout << "name: " << id << ") " << name << " : " << " Priority value: " << priority << std::endl;
}
void打印(std::ofstream&myfile)常量{
myfile您当前代码中的问题是,print()
函数每次调用时都会覆盖输出文件
一种不需要您使用ios::app的可能解决方案是更改函数的签名,如下所示:
void print(std::ofstream& myfile ) const {
myfile << "id: (";
myfile<< id;
myfile << ") ";
myfile<<"name: ";
myfile<< name;
myfile << " : ";
myfile<< " Priority value: ";
myfile << priority;
myfile <<"\n";
std::cout << "name: " << id << ") " << name << " : " << " Priority value: " << priority << std::endl;
}
void打印(std::ofstream&myfile)常量{
myfile以追加(app
)模式而不是输出模式打开文件。现在没有时间解释详细信息,因此不会给出完整答案。谢谢,这实际上是追加当前文件。当我使用“trunc”时相反,我得到了同样的问题,它只打印1item@william_您希望您的输出看起来像什么?您的问题建议它应该包含您的优先级队列的所有条目是正确的当我使用ios::trunc覆盖现有文件(这就是我想要的)时,它应该包含所有条目它只会打印出一个条目。当我使用ios::app时,它会打印所有条目,但我不希望附加。最终,这些文件将被放置在要下载的在线目录中,因此我无法附加这些文件。您可以向我们展示ios::app之后该文件的外观吗?在附加(app
)中打开该文件模式,而不是输出模式。现在没有时间解释细节,所以不会给出完整的答案。谢谢,这实际上是附加当前文件。当我使用“trunc”相反,我得到了同样的问题,它只打印1item@william_您希望您的输出看起来像什么?您的问题建议它应该包含您的优先级队列的所有条目是正确的当我使用ios::trunc覆盖现有文件(这就是我想要的)时,它应该包含所有条目它只会打印出一个条目。当我使用ios::app时,它会打印所有条目,但我不希望附加。最终,文件将放在要下载的在线目录中,因此我无法附加文件。您能告诉我们ios::app之后文件的外观吗?