cin вызывает исключение при использовании xtensor - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь написать программу с использованием xtensor, и она работала нормально, пока я не попытался использовать cin:

auto w=5;
cout << "Enter the 'n' for an nxn matrix: ";
//cin >> w;
cout << w;
if (!cin) { cout << "FAIL"; return 0; }
xarray<double> t;
t = nxn_array(4);
return 0;

С определением функции:

xarray<double> nxn_array(unsigned int n) //shows original array being used
{
    auto show = empty<double>({ n,n });
    int c = 1; //lattic site index
    for (unsigned int i = 0; i < n; ++i)
    {
        for (unsigned int j = 0; j < n; ++j)
        {
            show(i, j) = c;
            ++c;
        }
    }
    cout << show;
    return show;
};

Работает нормально, еслиЯ комментирую cin >> w.Но когда я включаю его, я получаю Exception thrown at 0x004FF284 in File_Name.exe: 0xC0000005: Access violation executing location 0x004FF284. в файле xstorage.hpp.Это также работает нормально, если я закомментирую cout << show;, но оставлю в cin >> w.

Я не уверен, почему это так.w вообще не используется.Я думаю, что исключение выдается в части cout << show всякий раз, когда включается cin >> w.

...