Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

что нужно поменять7

39K
26 августа 2008 года
мурмурчик
6 / / 26.08.2008
подскажите, пожалуйста, что нужно изменить, чтобы значение Radiusa не приходилось вводить с клавиатуры, а чтобы оно бралось из bat файла?
int main(int argc, char *argv[])
{// Объявить переменные
FILE *fileIn, *fileOut;
float Radius, L, v2;
Point curPoint, point, prevPoint;
char szBuffer[100];
int index;
v2 = sqrt(2.0f);
printf("[%lf]\n",v2);
// Проверим количество аргументов
// (их должно быть 4 (строка запуска + 3 файла) )
if(argc==4)
{// Открыть исходный файл
fileIn = fopen(argv[1],"rt");
if(fileIn)
{// Открыть файл с результатами
fileOut = fopen(argv[2],"wt+");
if(fileOut)
{// Ввод радиуса
// (вводим, пока радиус не введут)
do
{
printf("Radius [2,1024] = ");
scanf("%f",&Radius);
}
while( Radius<2.0 || Radius>1024 );
// Читаем число в виде строки из файла
if( fscanf(fileIn,"%s",szBuffer)>0 )
{// Преобразуем строку в точку
ConvertToFloat(szBuffer,&curPoint);
// Записать число в результирующий файл
fprintf(fileOut,"%s\n",szBuffer);
// Читаем очередное число в виде строки
while( fscanf(fileIn,"%s",szBuffer)>0 )
{// Преобразуем строку в вещественное число
ConvertToFloat(szBuffer,&point);
// Вычислим расстояние Между точками curPoint и point
L = sqrt( fabs(curPoint.x - point.x)*fabs(curPoint.x - point.x) +
fabs(curPoint.y - point.y)*fabs(curPoint.y - point.y) );
// Проверим: равно ли расстояние ПРИБЛИЗИТЕЛЬНО радиусу
if( floor(L)==floor(Radius) )
{// Если эти велечины ПРИБЛИЗИТЕЛЬНО равны
// то записать точку в файл
fprintf(fileOut,"%s\n",szBuffer);
// и сделать вновь найденную точку исходной
curPoint.x = point.x;
curPoint.y = point.y;
}
}
}
// Закрыть файл
fclose(fileOut);
}
// Закрыть файл
fclose(fileIn);
}
288
26 августа 2008 года
nikitozz
1.2K / / 09.03.2007
Что вроде этого
 
Код:
Radius = atof(argv[N])
,
где N - индекс значения радиуса в коммандной строке
1.9K
26 августа 2008 года
max_dark
256 / / 11.11.2005
Код:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

struct Point {
    float x,y;
};

void usage();
void ConvertToFloat(const char* str, Point* pt);

int main(int argc, char **argv) {
    FILE *fileIn, *fileOut;
    float Radius, L, v2;
    Point curPoint, point, prevPoint;
    char szBuffer[100];
    int index;
    if ((argc!=4)||(argc != 5)) {
        usage();
    }
    v2 = sqrt(2.0f);
    printf("[%lf]\n",v2);
    fileIn = fopen(argv[1],"rt");
    if(fileIn) {
        fileOut = fopen(argv[2],"wt+");
        if(fileOut) {
            Radius = 0.0f;
            if ( argc == 5 ) {
                Radius = atof(argv[4]);
            }
            while( Radius<2.0 || Radius>1024 ) {
                printf("Radius [2,1024] = ");
                scanf("%f",&Radius);
            }
            if( fscanf(fileIn,"%s",szBuffer)>0 ) {
                ConvertToFloat(szBuffer,&curPoint);
                fprintf(fileOut,"%s\n",szBuffer);
                while( fscanf(fileIn,"%s",szBuffer)>0 ) {
                    ConvertToFloat(szBuffer,&point);
                    L = sqrt( fabs(curPoint.x - point.x)*fabs(curPoint.x - point.x) +
                    fabs(curPoint.y - point.y)*fabs(curPoint.y - point.y) );
                    if( floor(L)==floor(Radius) ) {
                        fprintf(fileOut,"%s\n",szBuffer);
                        curPoint.x = point.x;
                        curPoint.y = point.y;
                    }
                }
            }
            fclose(fileOut);
        }
        fclose(fileIn);
    }
    return 0;
}

void usage() {
    puts("me file.in file.out file.??? [radius]");
    exit(0);
}

void ConvertToFloat(const char* str, Point* pt) {
    // ....
}
39K
27 августа 2008 года
мурмурчик
6 / / 26.08.2008
не получается(((
39K
27 августа 2008 года
мурмурчик
6 / / 26.08.2008
всем спасибо, разобралась
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог