std::fstream file(argv[1], std::ios::in | std::ios::out | std::ios::binary);
file.seekg(0, std::ios::end);
int lengthFile = file.tellg();
file.seekg(0, std::ios::beg);
char *buffer = new char[lengthFile];
file.read(buffer, lengthFile);
std::string bufferString(buffer);
int size = bufferString.length();
не понятно почему при создании std::string равен всего лишь 214? Хотя размер файла 208638. Возможно ли в string вместить весь файл? И если возможно то как? Я почему-то думал что это делается простым способом как выше написал, но не прошло.
Здравствуйте, Аноним, Вы писали:
А>А>std::fstream file(argv[1], std::ios::in | std::ios::out | std::ios::binary);
А>file.seekg(0, std::ios::end);
А>int lengthFile = file.tellg();
А>file.seekg(0, std::ios::beg);
А>char *buffer = new char[lengthFile];
А>file.read(buffer, lengthFile);
А>std::string bufferString(buffer);
А>int size = bufferString.length();
А>
А>не понятно почему при создании std::string равен всего лишь 214? Хотя размер файла 208638. Возможно ли в string вместить весь файл? И если возможно то как? Я почему-то думал что это делается простым способом как выше написал, но не прошло.
А buffer[215] случайно не равен '\0' ?
Может вы хотели:
std::string bufferString(buffer, buffer + lengthFile);
Здравствуйте, _nn_, Вы писали:
__>А buffer[215] случайно не равен '\0' ?
а я то думал почему с одним файлом size был 214 а с другим файлом 315, но так и не понял.
__>Может вы хотели:
__>std::string bufferString(buffer, buffer + lengthFile);
большущее спасибо, теперь работает, жаль что сам не догадался про второй параметр, а сразу начал паниковать.