int main()
{
ifstream in("1");
if (!in) {
cerr << "无法打开文件" << endl;
}
string line;
vector<string> words;
while (getline(in, line))
words.push_back(line);
in.close();
for (auto i : words)
{
string word;
istringstream ist(i);
while (ist >> word)
cout << word << endl;
}
return 0;
}
struct PersonInfor
{
string name;
vector<string> phones;
};
int main()
{
vector<PersonInfor> people;
string line, na;
istringstream record;
while (getline(cin, line)) {
PersonInfor info;
record.clear();
record.str(line);
record >> info.name;
while (record >> na)
info.phones.push_back(na);
people.push_back(info);
}
}
struct PersonInfo
{
string name;
vector<string> phones;
};
string format(const string &s)
{
return s;
}
bool valid(const string &s)
{
return true;
}
int main(int argc, char *argv[])
{
string line, word;
vector<PersonInfo> people;
istringstream record;
if (argc != 2) {
cerr << "请给出文件名" << endl;
return -1;
}
ifstream in(argv[1]);
if (!in)
{
cerr << "无法打开文件" << endl;
return -1;
}
while (getline(in, line)) {
PersonInfo info;
record.clear();
record.str(line);
record >> info.name;
while (record >> word)
info.phones.push_back(word);
people.push_back(info);
}
ostringstream os;
for (const auto &entry : people) {
ostringstream formatted, badNums;
for (const auto &nums : entry.phones) {
if (!valid(nums)) {
badNums << " " << nums;
}
else
formatted << " "
<< format(nums);
if (badNums.str().empty())
os << entry.name << " "
<< formatted.str() << endl;
else
cerr << "input error : " << entry.name
<< " invalid number(s) "
<< badNums.str() << endl;
}
cout << os.str() << endl;
}
}