sinat_16233621 2015-05-31 14:29 采纳率: 0%
浏览 1748

小弟初学MFC,在文件读写方面遇到了问题

小弟初学MFC,在弄一个简单的学生管理系统,添加了一个对话框用于添加学生信息,然后在Add按钮添加了消息响应函数,对输入的数据进行写入到文件之中,但
是在判断是否读完的时候总是会出现问题,请教各位,代码如下:

void Add::OnClickedIdbAdd()
{
// TODO: Add your control notification handler code here
UpdateData();
if (!m_aComp || !m_aEng || !m_aMath || !m_aGym || !m_aName || !m_aSno || !m_aMajor ){
MessageBox(_T("请完善信息后再确认输入!"));
return;
}

CStdioFile csf;
if (!csf.Open(_T("D:\\SIMS.txt"), 
    CFile::modeCreate | CFile::modeNoTruncate | CFile::modeReadWrite)){
    #if def_DEBUG
        afxDump << "unable to open file" << "\n";
        exit(1);
    #endif 
}

int strlen = m_aSno.GetLength();
char* strSno = "";
CString strtemp;

csf.SeekToBegin();

while (csf.Read(strSno, strlen)){             //每次运行到这里出问题
    if (m_aSno == strSno){
        MessageBox(_T("该学号已存在,请重新输入。"));
        m_aSno = "";
        UpdateData(FALSE);
        return;
    }
    csf.ReadString(strtemp);
}

csf.SeekToEnd();
strtemp.Format(_T("%s   %s   %s   %d   %d   %d   %d\n"), 
    m_aSno, m_aName, m_aMajor, m_aMath, m_aComp, m_aEng, m_aGym);
csf.WriteString(strtemp);

csf.Close();

}
出现的问题如下:

图片说明

不知道这个怎么办?本人小白,很多都不懂,请大家多多指教。谢谢!

  • 写回答

8条回答 默认 最新

  • oyljerry 2015-05-31 14:31
    关注

    你的strSno没分配空间,只是一个指针,程序访问出错了。你需要new来分配。

    评论

报告相同问题?

悬赏问题

  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形