Форум программистов, компьютерный форум, киберфорум
Наши страницы

Считывать значения в матрицы и вектора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вектор. Составить программу изминения нулей в векторе http://www.cyberforum.ru/cpp-beginners/thread30736.html
Вектор. Составить программу изминения нулей в векторе на полсумму предыдущего и следующего елементов. На место первого и последнего нуля поставить следущее и предедущее число. Добавлено через 9...
C++ Подсчитать сумму натуральных чисел Подсчитать сумму натуральных чисел, в интервале , в которых парные и непарные цифры чередуються. http://www.cyberforum.ru/cpp-beginners/thread30733.html
Массивы! C++
1.Известно, что в Москве самыми теплыми являются дни с 15 июля по 15 августа. Для проведения фестиваля были выбраны 7 следующих подряд дней, наиболее теплых по данным за последние 10 лет. Составить...
C++ Реализовать класс bankomat
помогите пожалуйста...я совершенно не представляю себе работу с классами а тут такая задачка( реализовать класс Bankomat моделирующий работу банкомата. В классе должны содержатся поля для хранения...
C++ Как программно можно очистить экран консоли? http://www.cyberforum.ru/cpp-beginners/thread30713.html
Допустим я запустил консольную программку, там что-то она делает, и в результате экран заполняется текстом и т.д. Как программно можно очистить экран консоли?
C++ Упорядочить массив по убыванию элементов, найти минимальный элемент 1) Найдите площадь ромба по его диагоналям. 2)Упорядочить массив В(10) по убыванию элементов, найти минимальный элемент. 3)Дана матрица А(4,3). Вывести на печать все положительные элементы этой... подробнее

Показать сообщение отдельно
ciao
0 / 0 / 0
Регистрация: 25.12.2008
Сообщений: 28

Считывать значения в матрицы и вектора - C++

20.04.2009, 12:48. Просмотров 552. Ответов 0
Метки (Все метки)

Помогите пожалуйста разобраться. Эта прога должна считивать значения в матритцы и вектора. Как ей объяснить разнитцу между матрицей GHSERp и TC . Она считивает только GHSERp, а вторую TC считивать не хочет
Код
int Gibbs::calc_spaces(char *str) //Schitaet kol-vo probelov v strochke, otekaya nenujnie

{

  char *tmp;

  int ans = 0;

  bool sp = false;

  while (*str == ' ')

    ++str;

  for (tmp = str; *tmp; ++tmp)

  {

    if (isdigit(*tmp) && sp)

    {

      ++ans;

      sp = false;

    }

    if (*tmp == ' ')

      sp = true;

  }

  return ans;

}
Код
  int nm; //nomer matrici, kotoruu zapolnnyaem

  fp=fopen(datafile,"rt");

  char str[256];

  nm = 0;

  bool wasNumbers = false;

  while (!feof(fp))

  {

    str[0] = 0;

    char *tmp = fgets(str, sizeof(str), fp);

    if (!tmp || str[0] == 0) //Esli nichego ne schitali

      break; //Vihodim


    if (str[0] == '/') //Kommentariy

    {

      if (wasNumbers)//Esli mi schtali chisla iz matrici

      {

        wasNumbers = false;

        ++nm; //Znachit ko vtoroy perehodim

      }

      continue;

    }
   int sp = calc_spaces(str); //Schitaem kol-vo probelov

   if (sp == 4) nm = 4;
   if (sp == 6 && nm == 4) nm = 5;
   if (sp == 7) nm = 7;
//   if (sp == 4 && nm == 4) nm = 8;

    if (nm == 0)

    {

      int i ;

      double v = 0.;

      sscanf(str, "%d %lf", &i, &v);

      y1[i] = v;
      wasNumbers = true;

    }

    if (nm == 1)

    {

      int i ;

      double v = 0.;

      sscanf(str, "%d %lf", &i, &v);

      y2[i] = v;

      wasNumbers = true;

    }

    if (nm == 2)

    {

      int i ;

      double v = 0.;

      sscanf(str, "%d %lf", &i, &v);

      m[i] = v;

      wasNumbers = true;

    }
   if (nm == 3)
    {
    nm = 4;
    char *tmp = str;
    for (int i = 0; i<=sp; i++){
    double a = 0.;
    sscanf(tmp,"%lf",&a);
    Tr(i) = a;
    tmp = strchr(tmp, ' ');
    if(!tmp)
    break;
    ++tmp;
    wasNumbers = true;
    }
    continue;
    }
  if (nm == 4)
    {
      int t , i , j , l ;

      double v = 0.;

      sscanf(str, "%d %d %d %d %lf", &t, &i, &j, &l, &v);

      GHSERp(t,i,j,l) = v;
      wasNumbers = true;
    }
  if (nm == 5)
   {
      int t , i, j, k, l, m;

      double v = 0.;

      sscanf(str, "%d %d %d %d %d %d %lf", &t, &i, &j, &k, &l, &m, &v);

      L1ini(t,i,j,k,l,m) = v;
      wasNumbers = true;
   }
  if (nm == 6)
   {
      int t, i, j, k, l, m;

      double v = 0.;

      sscanf(str, "%d %d %d %d %d %d %lf", &t, &i, &j, &k, &l, &m, &v);

      L2ini(t,i,j,k,l,m) = v;
      wasNumbers = true;
   }
  if (nm == 7)
   {  
      nm = 8;
      int t, i, j, k, l, m, n;

      double v = 0.;

      sscanf(str, "%d %d %d %d %d %d %d %lf", &t, &i, &j, &k, &l, &m, &n, &v);

      L0ini(t,i,j,k,l,m,n) = v;
      wasNumbers = true;
   }
  if (nm == 8)
  {
      int t , i , j , l ;

      double v = 0.;

      sscanf(str, "%d %d %d %d %lf", &t, &i, &j, &l, &v);

      TC(t,i,j,l) = v;
      wasNumbers = true;
  } 
 }
fclose(fp);
0
Вложения
Тип файла: txt ferrite.txt (12.1 Кб, 12 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru