Форум программистов, компьютерный форум CyberForum.ru

что нужно поменять? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Неправильное объявление или вызов подпрограмм http://www.cyberforum.ru/cpp-beginners/thread11749.html
Приветствую Вас форумчане, помогите разобраться с кодом, недавно начал изучать с++ - вот решил накропать программку по обработке CDR-файлов Идея : при запуске юзер должен ввести часть имени файла а прога уже сама по этому шаблону выбирает файлы читает из них нужные данные копит чего нужно потом выводит на экран. Соответственно есть подпрограмма func1 которая занимается вормирование полного имени...
C++ Как запустить в Dev C++ #include<iostream> #include<iomanip> #include<fstream> using namespace std; int main() { ifstream fin("с:\\input.txt", ios::in|ios:: nocreate); if(!fin) { cout << "Fail input.txt don't found" << endl; return 1;} http://www.cyberforum.ru/cpp-beginners/thread11722.html
использование setdate C++
Какую максимальную дату можно установить в качестве системного времени в DOS с помощью Си?
C++ dev c++ 4.9 не понимает тип string
#include <iostream> #include <string> using std::cout; using std::endl; using std::string; class Invoice {
C++ Использование стека http://www.cyberforum.ru/cpp-beginners/thread11689.html
Очереди, стеки В текстовом файле записано без ошибок логическое выражение следующего вида: <лог.выр.>::=true | false | !<лог.выр.> | <лог.выр.>&&<лог.выр.> | <лог.выр.>||<лог.выр.>. Используя стек, вычислить значение этого выражения с учетом приоритета операций. вот-такое вот снова непонятное задание - каким образом вообще используется стек???
C++ двунаправленный список Используя двунаправленный список, написать программу сложения двух длинных целых чисел. Что такое двунаправленный список понимаю, но как его реализовать нет, помогите пожалуйста подробнее

Показать сообщение отдельно
Мурмурчик
Сообщений: n/a
27.08.2008, 12:47     что нужно поменять?
подскажите пожалуйста, что нужно поменять, чтобы значение Radiusa не требовалось вводить с клавиатуры, а чтобы это значение бралось из bat файла?
Код
#include <stdio.h>
#include <math.h>
#include <string.h>

// Определить струтуру точки
typedef struct
{
 float x;
 float y;
} Point;

// Конвертироовать строку в точку
void ConvertToFloat(char *Buffer,Point *point)
{
 float res;
 char szBuffer[100];
 int len, i;
 // Скопируем данные во внутренний буфер
 strcpy(szBuffer,Buffer);
 // Определить размер строки
 len = strlen(Buffer);
 // Заменить запятую на точку
 for(i=0;i<len;i++)
 {
  szBuffer[i] = Buffer[i];
  if(szBuffer[i]==',')
  {// Заменить запятую на символ окончания строки
   szBuffer[i] = NULL;
   // Преобразовать начало строки (до запятой) в координату x
   point->x = atof(szBuffer);
   // Преобразовать начало строки (после запятой) в координату y
   point->y = atof(szBuffer+i+1);
  }
 }
}

// Главная функция
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);
  }
  /////////////////////////////////////////////////////////
  // Проверка на равность 1 или корень из 2
  /////////////////////////////////////////////////////////
  // Открыть исходный файл
  fileIn = fopen(argv[1],"rt");
  if(fileIn)
  {// Файл откроем только при записи первой строки
   fileOut = NULL;
   // По умолчанию индекс строки = 1
   index = 1;
   // Читаем число в виде строки из файла 
   if( fscanf(fileIn,"%s",szBuffer)>0 )
   {// Преобразуем строку в точку
    ConvertToFloat(szBuffer,&prevPoint);
    // Читаем очередную точку
    while( fscanf(fileIn,"%s",szBuffer)>0 )
    {// Преобразуем строку в вещественное число
     ConvertToFloat(szBuffer,&point);
     // Вычислим расстояние Между точками prevPoint и point
     L = sqrt( fabs(prevPoint.x - point.x)*fabs(prevPoint.x - point.x) + 
	       fabs(prevPoint.y - point.y)*fabs(prevPoint.y - point.y) );
     // Если расстояние НЕ равно 1 или корню из 2
     if( L!=1.0f && L!=v2 )
     {// то если файл ещё не открыт
      if(fileOut==NULL)
      {// то открыть его
       fileOut = fopen(argv[3],"wt+");
      }
      // Сохраним в файл строку для проверки
      fprintf(fileOut,"check %i, %i\n",index,index+1);     
     }
     // Запомнить предыдущую точку
     prevPoint.x = point.x;
     prevPoint.y = point.y;
     // Увеличить индекс строки
     index++;
    }
   }
   // Закрыть файл, если он был открыт
   if(fileOut)
   {// Закрыть файл
    fclose(fileOut);
   }
   // Закрыть файл
   fclose(fileIn);
  }
 }
 else 
 {// Вывести строку подсказку
  printf("\nANALIZ_C.EXE <fileIn.cf> <fileOut.dat> <fileCheck.dat>\n");
 }
 return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru