求助:用指针读取txt程序错误,First-Chance exception
来源:百度知道 编辑:UC知道 时间:2024/05/26 13:22:04
void CSpectrumprocessView::OnDatatoBmp()
{
HANDLE hFile;//加关键字handle
CString str;
/****************采集参考臂数据****************/
str="ck.txt";
hFile=CreateFile //打开文本文件
(str,
GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
MessageBox(TEXT("Could not open file: ck.txt"));
} // process error自动弹出对话框
SetFilePointer(hFile,0,NULL,FILE_BEGIN); //DWORD nBytesToRead,nBytesRead;
nBytesToRead=GetFileSize(hFile,NULL); //得到文件长度成功!
inBuffer=new char[nBytesToRead];
ReadFile(hFile,inBuffer,nBytesToRead,&nBytesRead,NULL);
double* ckBuffer=new double[400]; //ck样品数据char型共59372个
i=0;
k=0;
for(;k<400;)
{
char temp[8]; //暂存char型数组以转换为double
if(*inBuffer==9) //debug发现tab键对应值为9,目的是提取强度
{
i++;
if(i>1624&&i<
{
HANDLE hFile;//加关键字handle
CString str;
/****************采集参考臂数据****************/
str="ck.txt";
hFile=CreateFile //打开文本文件
(str,
GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
MessageBox(TEXT("Could not open file: ck.txt"));
} // process error自动弹出对话框
SetFilePointer(hFile,0,NULL,FILE_BEGIN); //DWORD nBytesToRead,nBytesRead;
nBytesToRead=GetFileSize(hFile,NULL); //得到文件长度成功!
inBuffer=new char[nBytesToRead];
ReadFile(hFile,inBuffer,nBytesToRead,&nBytesRead,NULL);
double* ckBuffer=new double[400]; //ck样品数据char型共59372个
i=0;
k=0;
for(;k<400;)
{
char temp[8]; //暂存char型数组以转换为double
if(*inBuffer==9) //debug发现tab键对应值为9,目的是提取强度
{
i++;
if(i>1624&&i<
要说delete也应该这样使用吧:
if(inBuffer)
delete [] inBuffer; //(这里你是一个数组的空间啊)
另外ckBuffer你好像也没释放吧
还有希望你数组不要越界就好(前面代码我没仔细看)。