Есть .txt файл, необходимо считать его размеры, после этого побайтно переписать данные. Соответственно необходимо знать первоначальный размер файла. Пробовал через метод отсюда через tellg - получал -1, далее попробовал метод отсюда используя gcount - получал 0. Первый метод работает если добавить флаг app при открытии. Есть ещё какие-нибудь способы кроме как проход по файлу циклом?
Добавил проверку, при наличии флага binary ошибка:
void itsg06(std::string path)
{
std::fstream file(path, std::ios::binary);
if( !file.good() )
std::cout << "\nErr\n";
else
{
for( std::string line; std::getline( file, line ); )
{
std::cout << line << '\n';
}
}
file.close();
}
Открываете файл с флагом ios::ate, который установит позицию потока в конец файла. Далее уже с помощью функции tellg получаете размер файла
fstream file( "example.txt", ios::binary | ios::ate);
return file.tellg();
Если функция tellg вернула -1, значит вызов функции завершился с ошибкой.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей