Ir ao conteúdo

Problema Warnings em C


UbPadawan

Posts recomendados

Postado


#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int cont, qtde;
float numero, soma=0, media;

printf("Digite a quantidade de numeros dos quais sera feita a media: ");
scanf("%d", &qtde);
for(cont=1; cont<=qtde; cont++)
{
printf("Digite o %do numero: ", cont);
scanf("%f", &numero);
soma=soma+numero;
}
media=soma/qtde;
printf("A media aritmetica é %.2f", media);

return 0;
}

Estou tendo o seguinte warning na hora de compilar esse programa:

aviso: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]|

Quando fiz o mesmo programa no Windows não dava esse aviso, mas no Ubuntu dá ... Alguém sabe como resolver ? Estou usando o Code::Blocks.

Obrigado.

Postado

Salve, UbPadawan,

  UbPadawan disse:
Estou tendo o seguinte warning na hora de compilar esse programa:

aviso: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]|

Quando fiz o mesmo programa no Windows não dava esse aviso, mas no Ubuntu dá ... Alguém sabe como resolver ? Estou usando o Code::Blocks.

Obrigado.

Uma saída é você fazer:

([B]void[/B])scanf("%d", &qtde);

([B]void[/B])scanf("%f", &numero);

Esse warning ocorre porque a checagem do retorno do scanf() está sendo considerada pelo compilador. O casting acima deve resolver. A forma mais adequada para resolver isso seria fazer algo do tipo:

if ( scanf("%d", &qtde) == 1 ) { ... }

Teste aí,

:)

LNW

Postado

Simplesmente usar o (void) nao deu certo, já usar o if acredito que de certo pois se usar eu uso


x=scanf("%d", &qtde");

ele não imprime o warning. Eu queria saber é se tem como tirar esse warning em especifico, ja que pelo que eu vi não altera nada na hora de executar o programa devido esse "erro", o qual também não é mostrado no windows.

obrigado.

Postado

Salve, UbPadawan,

  UbPadawan disse:
Simplesmente usar o (void) nao deu certo, já usar o if acredito que de certo pois se usar eu uso


x=scanf("%d", &qtde");

ele não imprime o warning. Eu queria saber é se tem como tirar esse warning em especifico, ja que pelo que eu vi não altera nada na hora de executar o programa devido esse "erro", o qual também não é mostrado no windows.

obrigado.

Bom, tente passar a opção para o compilador: -Wno-unused-result

O Ubuntu provavelmente não utiliza uma versão "vanilla" do GCC, já que decidiu incluir esse tipo de flag (especificamente, atributos de funções) no seu código.

LNW

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Mostrar mais  

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

Mostrar mais  
×
×
  • Criar novo...