Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #58 da revista programar. Faz já o download aqui!

NEMESISaka

[Resolvido] If not true

Mensagens Recomendadas

NEMESISaka    0
NEMESISaka

Boa noite,

Venho aqui pedir ajuda em um simples problema, mas como sou um bocado "pato" em C não o consegui resolver :\

eu tenho uma condição if e queria fazer como no java e meter if (!"a condiçao"), mas recebo um erro de segmentation fault...

o meu código que esta a dar erro é o seguinte:

if(!((strcmp(t1,"P2")==0) || (strcmp(t1,"P5")==0))){
  fprintf(stderr, "\nTipo de imagem invalido.\n");
  fclose(f);
  return NULL;
}

Obrigado desde já por tudo,

Cumprimentos.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1139
HappyHippyHippo

se o erro é um segmentation fault o problema nunca será do operador.

onde está a instanciação da variável t1 ?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
NEMESISaka    0
NEMESISaka

se o erro é um segmentation fault o problema nunca será do operador.

onde está a instanciação da variável t1 ?

A esta no if antes desse pedaço de codigo:

char t1, ch;
if((fscanf(f,"P%d", &t1)) == 1){

if(!((strcmp(t1,"P2")==0) || (strcmp(t1,"P5")==0))){ // erro aqui
  fprintf(stderr, "\nTipo de imagem invalido.\n");
  fclose(f);
  return NULL;
}

mas em C posse meter o ! dentro do if antes da condição com o || ?

Editado por NEMESISaka

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    312
Rui Carlos

Que valor é que achas vai ficar na variável t1?

A tua ideia de ir buscar só um número é boa, mas se só vais buscar um número, então depois usas a comparação de números (inteiros de 8bits, neste caso) e não de strings.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.