【发布时间】:2012-10-25 14:35:19
【问题描述】:
我正在尝试将字符串流式电话查找程序转换为流式传输的文件。我遗漏了一些东西,但我被卡住了。我可以在 ofstream 进程中使用哪些成员来使其正常工作?
ofstream& process (ofstream &os, vector<PersonInfo> people)
{
// for each entry in people
for (vector<PersonInfo>::const_iterator entry = people.begin();
entry != people.end(); ++entry) {
ofstream formatted, badNums; // objects created on each loop
// for each number
for (vector<string>::const_iterator nums = entry->phones.begin();
nums != entry->phones.end(); ++nums) {
if (!valid(*nums)) {
badNums << " " << *nums; // string in badNums
} else
// ``writes'' to formatted's string
formatted << " " << format(*nums);
}
if (badNums.empty()) // there were no bad numbers
os << entry->name << " " // print the name
<< formatted.str() << endl; // and reformatted numbers
else // otherwise, print the name and bad numbers
cerr << "input error: " << entry->name
<< " invalid number(s) " << badNums.str() << endl;
}
return os;
}
【问题讨论】:
-
您没有将流与文件相关联。您需要调用
open()并传递文件名(或使用适当的构造函数)。而且流没有名为empty()的成员函数。
标签: c++ file ifstream ofstream