fscanf(ошибка при чтении из файла)
От: anais  
Дата: 08.12.04 06:19
Оценка:
написала код — чтение-запись в файл (записывается всё корректно в 1 раз, если нет ещё файла), а при чтении (fscanf) VC++ вылетает. не могу понять почему, помогите найти ошибку

void CLinesView::EndGame()
{
CDEnd dlg(field->m_Points);
dlg.DoModal();
FILE *stream;
CString *buf1, *buf3;
int i=0, point[20], j,num=-1, buf2, buf4;
CString *name[20];
char str;

if( (stream=fopen( "data.ls", "r" )) == NULL )
{
//работает корректно 1 раз создаёт файл
stream = fopen( "data.ls", "w" ); //файла нет,создали новый
fprintf(stream, "%s%d",dlg.m_name,field->m_Points);
fclose(stream);

}else
{
while (!feof(stream))
{
///////////////читаем массив, ТУТ ВОЗНИКАЕТ ОШИБКА
fscanf(stream,"%s%d",str, point[i]);
name[i]->Format("%s",str);
TRACE("%s,%d",name[i],&point[i]);
i++;
};
fclose(stream);
for (j=0;j<i;j++)
{
if (field->m_Points>point[j]){num=j; break;}
};
buf1=name[num]; buf2=point[num];
name[num]->Format("%s",dlg.m_name);
point[num]=field->m_Points;
if (num<20)
{
if (i<20) {i++;};
for (j=num+1;j<i-1;j++)
{
buf3=name[j+1];buf4=point[j+1];
name[j+1]=buf1;point[j+1]=buf2;
buf1=buf3;
buf2=buf4;
}

}

stream = fopen( "data.ls", "w" ); //файла нет,создали новый
for (j=0;j<i;j++)
{
fprintf(stream, "%s",name[j]);
fprintf(stream, "%i",point[j]);
fclose(stream);
};


};
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.