Я написал простую функцию, которая считывает весь файл в буфер.
#include <iostream>
#include <fstream>
int main()
{
std::ios_base::sync_with_stdio(0);
std::ifstream t;
t.open("C:\\Users\\sufal\\Desktop\\test.txt");
t.seekg(0, std::ios::end);
long length = t.tellg();
t.seekg(0, std::ios::beg);
std::cout << "file size: " << length << std::endl;
char* buffer = new char[length+1];
t.read(buffer, length);
t.close();
buffer[length] = 0;
std::cout << buffer << std::endl;
return 0;
}
А это test.txt:
1
2
3
Результат, который производит программа, выглядит следующим образом:
Размер файла должен быть 5 байтов. Почему моя программа показывает неправильный размер файла? Проводник Windows также показывает неправильный размер файла - 7 байт.
std::ifstream t; t.open("C:\\Users\\sufal\\Desktop\\test.txt”);
наstd::ifstream t("C:\\Users\\sufal\\Desktop\\test.txt");
. Кроме того, вам не нужно звонитьt.close();
. Это сделает деструктор. - person Pete Becker   schedule 30.11.2020