Exemplo n.º 1
0
void readfile(std::vector<boost::filesystem::path>::iterator start, std::vector<boost::filesystem::path>::iterator end)
{
	while (start != end)
	{
		std::string path = start->string(); // преобразование пути в строку
		std::ostringstream buff; // буфер для накопления
		std::ifstream file(path); 
		if (file.is_open()) // проверяем успешность открытия файла, если успешно, то:
		{
			int num = 0;
			std::string strnum;
			file >> strnum; // считываем содержимое файла в строку
			try
			{
				num = boost::lexical_cast<int>(strnum.c_str()); // приводим строку к целому, в случае ошибки - исключение
				sum += num; // если приведение прошло успешно, то увеличиваем общую сумму на значение из текущего файла
				buff << path.substr(path.find_last_of("\\") + 1) << ": " << num << std::endl; // добавляем информацию в буфер
			}
			catch (const boost::bad_lexical_cast)
			{
				buff << "Error file: " << path << std::endl;
			}
			file.close(); // закрываем файл
			++start; // переводим указатель
		}
		else
		{