- 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;
}
}
}