新手求助,fstream中出错,endwrite函数中异常:读取访问权限冲突

vs2017,c++ mfc 项目,调试中出现这个错误

引发了异常: 读取访问权限冲突。
this->**** 是 0x406C6A7F。

    bool _Endwrite()
        {   // put shift to initial conversion state, as needed
        if (_Pcvt == nullptr || !_Wrotesome)
            {
            return (true);
            }

        // may have to put
        if (_Traits::eq_int_type(_Traits::eof(), overflow()))     -----------这个地方
            {
            return (false);
            }

这个是我自己写的部分

void CMFCApplication2Dlg::OnTimer(UINT_PTR nIDEvent)
{
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    CString filename;                               //打开文件
    GetDlgItemText(IDC_OPEN_EDIT, filename);
    ifstream myfile;
    myfile.open("D:\\学习资料\\4毕业设计\\one.txt", ios::in);
    if (!myfile.is_open()) 
    {
        MessageBox(NULL, TEXT("failed!"));
        system("pause");
        exit(1);
        KillTimer(1);
    }


    float data[71][24] = { 0 };
    vector<string> vec;
    string temp;

    while (getline(myfile, temp))                    //利用getline()读取每一行,并按照行为单位放入到vector
    {
        vec.push_back(temp);
    }



    vector <float> radius;
    int j = 0;

    //cout << "读入的数据为 " << endl;
    for (auto it = vec.begin(); it != vec.end(); it++)      //第一行到最后一行
    {
        cout << *it << endl;
        istringstream is(*it);                    //用每一行的数据初始化一个字符串输入流;
        string s;

        for (size_t i = 0; i < 3; i++)
        {
            is >> s;                            //文字部分
        }

        for (size_t i = 0; i < 23; i++)
        {
            is >> s;
            data[j][i] = atof(s.c_str());
            cout << data[j][i] << endl;
        }

        if (j < 72)
        {
            j++;
        }
        else
        {
            j = 0;
        }    
    myfile.close();

  CDialogEx::OnTimer(nIDEvent);
}

重装了vs也没法解决。希望各位大大指点一下。

查看全部
qq_39833159
qq_39833159
2019/01/19 17:57
  • c++
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

1个回复