【发布时间】:2020-04-16 21:49:56
【问题描述】:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class Person //class Person
{
public: //declare variables in the Person class
string lastName, firstName, address, city, state, zip, phone;
Person();
void printPerson() //function used to print out the content inside this class
{
cout << firstName << " ";
cout << lastName << endl;
cout << address << ", ";
cout << city << ", ";
cout << state << " ";
cout << zip << endl;
cout << "Phone Number: " << phone << endl;
}
};
class Customer : public Person { //declare class Customer; Customer is a derived class of Person
public:
int customerNumber; //declare variables
bool mailingList;
string comments;
Customer();
void printCustomer() //function used to print the content in the Customer class as well as the Person class
{
printPerson();
cout << "Customer Number: " << customerNumber << endl;
if (mailingList == true)
{
cout << "Mailing List: True" << endl;
}
if (mailingList == false)
{
cout << "Mailing List: False" << endl;
}
cout << "Comments: " << comments << endl;
}
};
int main()
{
ofstream outfile;
outfile.open("testOutput.txt", ios::out);
PreferredCustomer Igottaquestion; //create an instance for PreferredCustomer
Igottaquestion.lastName = "Igottaquestion";
Igottaquestion.firstName = "Ed";
Igottaquestion.address = "4901 Evergreen";
Igottaquestion.city = "Dearborn";
Igottaquestion.state = "MI";
Igottaquestion.zip = "48126";
Igottaquestion.phone = "313-436-9145";
Igottaquestion.customerNumber = 1;
Igottaquestion.mailingList = true;
Igottaquestion.comments = "class quentioner";
Igottaquestion.printPreferredCustomer();
Customer Kool; //create an instance for Customer
Kool.lastName = "Kool";
Kool.firstName = "James";
Kool.address = "1313 Colin Blvd";
Kool.city = "Dearborn Heights";
Kool.state = "MI";
Kool.zip = "48127";
Kool.phone = "313-836-9168";
Kool.customerNumber = 3;
Kool.mailingList = false;
Kool.comments = "Class Answerer";
Kool.printCustomer();
cout << endl;
system("pause");
return 0;
}
我的问题是,不仅在屏幕上,我还需要将结果打印/输出到文本文件。
通常,我可以这样做:
流输出文件;
outfile.open("testOutput.txt", ios::out);
输出文件
但是,在这种情况下,如何将无效打印函数(嵌入在类中)打印到文本文件中?
【问题讨论】:
-
你能编辑函数吗?除非您被允许更改功能,否则我认为您无能为力。
-
根据 hw 指令,是的,我可以编辑函数。我也尝试编辑这些函数,但我认为在每个 void print 函数中打开输出文件只会一遍又一遍地重写文件,最终,只有最后一个被调用的函数会被打印到文件中。
-
如果程序打印出正确的输出,为什么不使用一个简单的实用程序 tee(在命令行上,无需修改程序)或重定向输出?
-
提示:C++ 使用
std::ostream&将数据格式化为文本并将其发送到……某处。std::cout就是一个例子;它将文本发送到“标准输出”,它可以连接到终端或屏幕。std::ofstream类型的对象是另一个例子;它将文本发送到您告诉它打开的文件。