1
resposta

cout << fixed is undefined

Boa tarde

estou tendo um problema quando tento executar o código usando esse modificador fixed. o Visual Studio code pro windows não reconhece o comando e gera um aviso de identificador não definido.

#include <iostream>


int main(){

    std::cout << "************************************" << std::endl;
    std::cout << "* Bem-vindo ao jogo da adivinhação *" << std::endl;
    std::cout << "************************************" << std::endl;

    //como a variável nunca muda, vamos declará-la como constante
    const int NUMERO_SECRETO = 42;      
    

    //bem interessante usar bools pra pegar as condições e usar essas variáveis pra testar as condições    
    bool acertou = true;
    int tentativas = 0;
    double pontuacao = 1000.0;

    //aqui entra no loop do jogo até que a pessoa acerte o número secreto.
    while(acertou){
        int chute;
        std::cout << "Qual número você vai chutar?" << std::endl;
        std::cin >> chute;

        pontuacao = pontuacao - abs(chute - NUMERO_SECRETO)/2.0;

        bool igual = NUMERO_SECRETO == chute;
        bool menor = NUMERO_SECRETO > chute;  
 
        if(igual){

            std::cout << "Parabéns! você acertou o número secreto!" << std::endl;
            acertou = false;
        }
        else if(menor){

            std::cout << "Você errou, seu número é menor que o número secreto." << std::endl;
        }
        else{
            
            std::cout << "Você errou, seu número é maior que o número secreto." << std::endl;
        }

        tentativas++;
    }
    std::cout << "fim de jogo!" << std::endl;
    std::cout << "você acertou o numero secreto em " << tentativas << " tentativas." << std::endl;
    std::cout.precision(2); 
    std::cout << fixed;
    std::cout << "sua pontuação final foi: " << pontuacao << " pontos." << std::endl;

}

segue o código.

1 resposta

Boa tarde, Antonio! Tudo bem?

O método fixed acaba sendo não reconhecido pelo Visual Studio Code por conta do namespace que você está utilizando, o std. Note que todo método que você está usando no seu código vem antes dele o namespace std, logo, para o fixed não será diferente.

De maneira geral, para resolver a sua situação, basta atribuir o namespace antes da chamada do método, para que assim seja reconhecido corretamente e não cause mais o erro de undefined. Segue o exemplo:

std::cout << std::fixed;

Espero ter ajudado e caso enfrente mais problemas ou tenha dúvidas, estarei à disposição para ajudá-lo.

Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software