C++ Bc. 18 cpp: Porovnání verzí

Z GeoWikiCZ
Bez shrnutí editace
m (odstranen priklad vystupu)
 
(Nejsou zobrazeny 4 mezilehlé verze od 2 dalších uživatelů.)
Řádek 13: Řádek 13:
           " 738.34  542.43  433.22  543.98      "
           " 738.34  542.43  433.22  543.98      "
           " 832.64  343.25  534.17  541.23      "
           " 832.64  343.25  534.17  541.23      "
           " 892,83  336.34 /* konec dat */      ");
           " 892.83  336.34 /* konec dat */      ");
   
   
   double x, y;
   double x, y;
Řádek 61: Řádek 61:
  }
  }


123.54 345.53
[ [[C++ Bc. 18 | Zpět]] ]
738.34 542.43
433.22 543.98
832.64 343.25
534.17 541.23
teziste: 532.382 463.284


[ [[C plus plus Bc. 18 | Zpět]] ]
[[Kategorie:Programování]]
[[Kategorie:C++]]

Aktuální verze z 20. 10. 2006, 21:52

#include <iostream>
#include <sstream>

std::istream& komentar(std::istream& inp);

int main()
{
  using namespace std;

  istringstream 
    data("/* vstup obsahuje souradnice x a y */ "
         "/* x */ 123.54  /* y */ 345.53        "
         " 738.34  542.43   433.22  543.98      "
         " 832.64  343.25   534.17  541.23      "
         " 892.83  336.34 /* konec dat */       ");

  double x, y;
  double sx = 0, sy = 0;
  int    pocet = 0;

  // funkce komentar je definovana jako manipulator bez parametru
  while (data >> komentar >> x >> komentar >> y)
    {
      cout << x << " " << y << endl;
      sx += x;
      sy += y;
      pocet++;
    }

  if (pocet)
    cout << "\nteziste: " << sx/pocet << " " << sy/pocet << endl;
  else
    cout << "na vstupu nejsou zadne souradnice\n";
}


std::istream& komentar(std::istream& inp)
{
  char z;
  while (inp >> z)
    {
      // komentar zacina dvoji znaku /*
      if (z != '/' || inp.peek() != '*')
        {
          inp.putback(z);
          return inp;
        }
      
      inp.get();   // nactu znak '*'

      // komentar konci dvojici znaku */
      while (inp >> z)
        if (z == '*' && inp.peek() == '/')
          {
            inp.get();    // nactu znak '/'
            break;        // hledam dalsi komentar
          }
    }

  return inp;
}

[ Zpět ]