Ir ao conteúdo
  • Cadastre-se

C Código em C travando


eliferreira

Posts recomendados

Pessoal , estou com problema nessas linhas de código. Após inserir o nome 2 o console trava e a opção é encerrar o program, sem mostrar nenhuma das mensagens (Nome igual ou diferente).Segue o código:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
    char nome1[50], nome2[50];
    printf("digite o nome 1\n", nome1);
    gets(nome1);
    setbuf(stdin, NULL);
    printf("digite o nome 2\n", nome2);
    gets(nome2);
    if (strcmp(nome1, nome2==0))
    {
        printf("nomes iguais");
    }else{
        printf("nomes diferentes");
    }
    system("PAUSE");
    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

@eliferreira Olá!

 

Evite a utilização das funções scanf() e gets(), alternativa? use fgets(). Seu erro foi na checagem usando (if), você não soube ou esqueceu de utilizar os parênteses para separar as ações, normalmente, deve-se separar por parênteses, cada ação de checagem. Por exemplo:

 

- Exemplo com cores para melhor compreensão:

( ( ( ação1 ) ação2 ) ação3 )

 

- Exemplo em código:

if (strcmp(nome1, nome2==0)){
  // Não funcional
}

if ((strcmp(nome1, nome2)) == 0) {
  // Funcional
}

 

 

Código já alterado (funcional):

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
  char nome1[50], nome2[50];

  printf("Digite o nome1: ");
  fgets(nome1, 50, stdin);

  printf("Digite o nome2: ");
  fgets(nome2, 50, stdin);

  if ((strcmp(nome1, nome2)) == 0)
  {
  	printf("Nomes iguais.\n");
  }
  else
  {
  	printf("Nomes diferentes.\n");
  }

  system("PAUSE");

  return 0;
}

Espero ter lhe ajudado, Até mais!!

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

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

×
×
  • Criar novo...