c++primer 练习11.9 (读取一行字符串,然后从字符串中提取单词)

#include "pch.h"
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <string>
#include <list>
#include <iterator>
#include <map>
#include <set>
#include <sstream>
using namespace std;



int main(int argc,char **argv) {
	//list<int> lineNO;
	string line;
	ifstream in("ss.txt");
	int count = 0;
	map< string, list<int>> imap;
	while (getline(in, line)) {//读取一行
		++count;
		istringstream ss(line);//将一行字符串转换成流
		string word;
		while (ss >> word) {
			imap[word].push_back(count);//统计出现的行号
		}
	}
	for (auto i : imap) {
		cout << i.first << " occurs " << i.second.size() << (i.second.size() > 1 ? " times" : " time") << ". the line NO is : ";
		ostream_iterator<int> out_iter(cout, " ");//输出出现的行号
		copy(i.second.cbegin(), i.second.cend(), out_iter);
		cout << endl;
	}
}

猜你喜欢

转载自blog.csdn.net/dididisailor/article/details/82829675