C++

Статус
В этой теме нельзя размещать новые ответы.

SiTrak

Известный
Автор темы
192
258
Помогите, не компилирует

C++:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cyr_io.h"
void add(void)
{
        FILE    *File;
        char myfile[50];
        short   Iter=0;
        short   Temp=0;
        short   CoordX=0;
        short CoordY=0;
        short   SumObj=0; //Коллличество объектов уже записанных в файле
        short NPoint=0; // Количество точек в метрике объекта
// Открываем файл на чтение, чтобы проверить его на наличие и количество записаных объектов
        rprintf("Введите имя файла\n");
        gets(myfile);
        if((File=fopen(myfile,"rb"))!=NULL)
        {
            while(!feof(File))
            {
                fread(&Temp,sizeof(short),1,File);
                if(Temp=='\n')  SumObj++;
            }
            SumObj--;
            fclose(File);
        }
        if(SumObj==0)
        {
            File=fopen(myfile,"wb");
        }
        else
        {
            File=fopen(myfile,"ab");
        }
        SumObj++;
        fwrite(&SumObj,sizeof(short),1,File);
    rprintf("Введите количество точек в метрике объекта:");
    scanf("%d",&NPoint);
        fwrite(&NPoint,sizeof(short),1,File);
        for(Iter=0;Iter<NPoint;++Iter)
        {
            rprintf("Введите X координат объекта:");
            scanf("%d",&CoordX);
            rprintf("Введите Y координату объекта:");
            scanf("%d",&CoordY);
            fwrite(&CoordX,sizeof(short),1,File);
            fwrite(&CoordY,sizeof(short),1,File);
        }
        Temp='\n';
        fwrite(&Temp,sizeof(short),1,File);
        fclose(File);
    getchar();
}
void view(void)
{
    FILE    *File;
    short   NPoint=0;//Количество точек в метрике объекта
    char myfile[50];
    short   NObj=0;// № объекта
    short   SumObj=0;// Количество объектов уже записаных в файе
    short   Iter=0;
    short   Temp=0;
// Открываем файл на чтение, чтобы проверить его наличие и количество записаных объектов
        rprintf("Введите имя файла\n");
        gets(myfile);
    if((File=fopen(myfile,"rb"))!=NULL)
    {
        while(!feof(File))
        {
            fread(&Temp,sizeof(short),1,File);
            if(Temp=='\n')  SumObj++;
        }
        SumObj--;
        fclose(File);
    }
    else
    {
        rprintf("Файл с метриками отсутствует !");
        return;
    }
    do
    {
        rprintf("Введите номер объекта:");
        scanf("%d", &NObj);
    }   while(NObj<1 || NObj>SumObj);
    File=fopen(myfile,"rb");
    while(!feof(File))
    {
        fread(&Temp,sizeof(short),1,File);
        if(Temp==NObj)
        {
            fread(&NPoint,sizeof(short),1,File);
            for(Iter=0;Iter<NPoint;++Iter)
            {
                fread(&Temp,sizeof(short),1,File);
                rprintf("Координата X: %2d, ",Temp);
                //CoordObj1[0][Iter]=Temp;
                fread(&Temp,sizeof(short),1,File);
                rprintf("Координата Y: %2d\n, ",Temp);
                //CoordObg1[1]=Temp;
            }
        }
        do
        {
            fread(&Temp,sizeof(short),1,File);
        } while(Temp !='\n');
    }
    fclose(File);
}
int menu_select(void)
{
    char str[2],pos;
    printf("\n");
    rprintf("1. Добавить объект в картограф.\t");
    rprintf("2. Вывести метрику объекта.\t");
    rprintf("3. Выход");
    do
    {
        rprintf("\n Введите номер нужного пункта:");
        gets(str);
        pos=atoi(str);
    } while(pos<0 || pos>3);
    return pos;
}
void main(void)
{
    char select;
    system("cls");
    for(;;)
    {
        select=menu_select();
        switch(select)
        {
        case 1: add(); break;
        case 2: view(); break;
        case 3: exit(0); break;
        default: break;
        }
    }
}
 
Статус
В этой теме нельзя размещать новые ответы.