1 Востаннє редагувалося Komiks (25.12.2013 20:52:56)

Тема: Помилка

#include "stdafx.h"
#include <stdio.h>
void printfile(FILE*ffile)
{
    fseek(ffile,0,SEEK_SET);
    while(!feof(ffile))
    {
        int t;
        if(fread(&t,sizeof(t),1,ffile))
            printf("%6d",t);
    }
    printf("\n");
}
void lab14()
{
    FILE*ffile;
    fopen_s(&ffile,"test.dat","r+");
    printf("This is file:\n");
    printfile(ffile);
    int min,max,t;
    fseek(ffile,0,SEEK_SET);
    if(!feof(ffile))
    {
        fread(&t,sizeof(t),1,ffile);
        min=max=t;
        while(!feof(ffile))
        {
            fread(&t,sizeof(t),1,ffile);
            if( t<min)
                min=t;
            if(t>max)
                max=t;
        }
        fseek(ffile,sizeof(t),SEEK_END);
        fwrite(&max,sizeof(max),1,ffile);
        
        if(!fseek(ffile,0,SEEK_END))
        {
            int p;
            while((p = ftell(ffile)/sizeof(t))>2)
            {
                fseek(ffile,(p-3)*sizeof(t),SEEK_SET);
                fread(&t,sizeof(t),1,ffile);
                fseek(ffile,(p-2)*sizeof(t),SEEK_SET);
                fwrite(&t,sizeof(t),1,ffile);
            }
        }
        fseek(ffile,0,SEEK_SET);
        fwrite(&min,sizeof(min),1,ffile);
    }
    printf("This is result file:");
    printfile(ffile);
}
void main()
    
{
    lab14();
    getchar();
}

Є такий код. Коли я його запускаю, мені видає таку помилку. Як її виправити?

Post's attachments

ОШИБКАА.jpg 304.55 kb, 266 downloads since 2013-12-25 

2

Re: Помилка

Ви відкриваєте файл, але не перевіряєте, чи насправді його відкрили.
А взагалі, у VS зручно здійснити зневадження (почитайте тут), інакше складно виявити, де саме програма падає.