@rgamretsky
SharePoint Develorep(а хочется в ASP.NET MVC dev)

Как прочитать участок строки(текстового файла) в С++?

Задача такая. Есть файл с которого надо прочесть слова по заданным позициям [10;20], [23;40] (например). Можно ли как то их прочесть по заданным интервалам напрямую с файла при помощи fstream, ну или с строковой переменной?
  • Вопрос задан
  • 2255 просмотров
Пригласить эксперта
Ответы на вопрос 2
Используйте seekg и read
Ответ написан
Комментировать
@iwanerhov
Программист С/C++
Так ! Тебе нужно узнать размер файла ! (для 1 байтной кодировки )
int GetSizeFile(const char * filename)
{
	std::ifstream file(filename, std::ios_base::binary);
	int size = 0;
	
	file.seekg(0, std::ios_base::end);
	size = (int)file.tellg();
	
	return size;
}

Теперь ты узнал размер файла! И можешь все-таки написать свою функцию или метод где ты будешь с помощью метода seekg прыгать по файлу

А вот метод для копирования ! Кстати метод канонический !
bool CopyFiles(const char * pathWithName, const char * outputPathAndName)
{
	std::ifstream in(pathWithName, std::ios::in | std::ifstream::binary);
	std::ofstream out(outputPathAndName, std::ios::out| std::ofstream::binary);
	
	if (!in)
		return false;
	if (!out)
		return false;

	const int bufSize = 4096;
	char * buffer = new char[bufSize];
	
	while (!in.eof())
	{
			in.read(buffer, bufSize);
			if (in.gcount())
				out.write(buffer, in.gcount());
	}
	
	delete[] buffer;

	return true;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы