fork download
  1. #include <iostream>
  2. #include <functional>
  3. #include <string>
  4.  
  5. template<typename T, template <class> class binary_func>
  6. void processTwoVal(std::string const& text,
  7. std::string const& op)
  8. {
  9. T val1, val2;
  10. std::cout << "Geben Sie " << text << " ein: ";
  11. std::cin >> val1;
  12. std::cout << "Geben Sie noch " << text << " ein: ";
  13. std::cin >> val2;
  14.  
  15. std::cout << val1 << ' ' << op << ' ' << val2 << " = " << binary_func<T>()(val1, val2) << "\n\n";
  16. }
  17.  
  18. int main()
  19. {
  20. std::cout << std::boolalpha;
  21.  
  22. processTwoVal<int, std::plus>("eine ganzzahlige Variable", "+");
  23.  
  24. processTwoVal<float, std::minus>("eine Gleitpunktzahl", "-");
  25.  
  26. processTwoVal<bool, std::logical_and>("einmal 1(wahr) oder 0(falsch)", "&&");
  27.  
  28. processTwoVal<char, std::not_equal_to>("ein Zeichen", "!=");
  29.  
  30. processTwoVal<std::string, std::less>("eine Zeichenkette", "<");
  31. }
Success #stdin #stdout 0.01s 2820KB
stdin
5 9
4.2 2.3
1 1
8 9
Tobi Toba
stdout
Geben Sie eine ganzzahlige Variable ein: Geben Sie noch eine ganzzahlige Variable ein: 5 + 9 = 14

Geben Sie eine Gleitpunktzahl ein: Geben Sie noch eine Gleitpunktzahl ein: 4.2 - 2.3 = 1.9

Geben Sie einmal 1(wahr) oder 0(falsch) ein: Geben Sie noch einmal 1(wahr) oder 0(falsch) ein: true && true = true

Geben Sie ein Zeichen ein: Geben Sie noch ein Zeichen ein: 8 != 9 = true

Geben Sie eine Zeichenkette ein: Geben Sie noch eine Zeichenkette ein: Tobi < Toba = false