• Почему при смене цвета текста в printf цвет не меняется, а попадают символы?

    @KazukiSamuel
    А вы уверенны, что там меняется цвет таким способом ?
    В стандартном терминале Windows это делается так:
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
      // you can loop k higher to see more color choices
      for(int k = 1; k < 255; k++)
      {
        // pick the colorattribute k you want
        SetConsoleTextAttribute(hConsole, k);
        cout << k << " I want to be nice today!" << endl;
      }
      //Код взят с https://stackoverflow.com/questions/4053837/colorizing-text-in-the-console-with-c

    Такое ("#define RED "\x1B[31m"") изменение цвета характерно для Linux.
    Ответ написан
    Комментировать
  • Компилятор выдает "�", почему?

    @KazukiSamuel
    #include <iostream>
    #include <string>
    
    template<typename T>
    T power(T n, T p)
    {
    	T result = 1;
    	for (T i = 0; i < p; i++)
    	{
    		result = result * n;
    	}
    	return result;
    }
    
    template<typename T>
    T readPow() {
    	T power_;
    	T number;
    	std::cout << "Введите число: ";
    	std::cin >> number;
    	std::cout << "Введите степень: ";
    	std::cin >> power_;
    	return power(number, power_);
    }
    
    int main()
    {
    	setlocale(LC_ALL, "Russian");
    	int chose;
    	std::cout << "Выберите действие: ";
    	std::cin >> chose;
    
    	switch (chose)
    	{
    		case 1:
    			std::cout << readPow<int>() << std::endl;
    			break;
    		case 2:
    			std::cout << readPow<double>() << std::endl;
    			break;
    		case 3:
    			std::cout << readPow<float>() << std::endl;
    			break;
    		case 4:
    			std::cout << readPow<long>() << std::endl;
    			break;
    	}
    }

    Оставлю это тут, может пригодится.
    И вы уверены, что с char тоже нужно ? Ведь если прочитать char через cin, то в него будет записано не введенное число, а код введенного символа. Так если ввести 5, то по факту там будет число 53 (где то в этом районе).
    Ответ написан
    Комментировать