Я хочу прочитать часть данных из файла в stringstream, который позже будет использоваться для анализа данных (используя getline, >> и т. Д.). После чтения байтов я установил буфер потока строк, но не могу сделать это, чтобы установить указатель p.
Я протестировал код на некоторых онлайн-сервисах, таких как onlinegdb.com и cppreference.com, и он работает. Однако в Microsoft я получаю сообщение об ошибке - указатели выходят из строя.
Вот код, я заменил чтение файла массивом символов.
#include <sstream>
#include <iostream>
int main()
{
char* a = new char [30];
for (int i=0;i<30;i++)
a[i]='-';
std::stringstream os;
std::cout << "g " << os.tellg() << " p " << os.tellp() << std::endl;
os.rdbuf()->pubsetbuf(a,30);
os.seekp(7);
std::cout << "g " << os.tellg() << " p " << os.tellp() << std::endl;
}
вывод, который я получаю, когда он работает
g 0 p 0
g 0 p 7
вывод я получаю на visual studio 2015
g 0 p 0
g -1 p -1
любые иды?
спасибо