Ir ao conteúdo

Posts recomendados

Postado

Pessoal boa noite estou com um exercício onde objetivo é reconhecer o problema e corrigir para funcionar mais não estou achando o defeito é relacionado a string estou com dificuldade em entender, alguém poderia me ajudar por favor 

int main(int argc, char *argv[])

  char cidade[30];
  char estado[40];
  
  printf("Encontre o erro de programação e faça corretamente\n");
  printf("\nDigite a Cidade: "); scanf("%s", cidade);
  printf("\nDigite o Estado: "); gets(estado);
  
  printf("\nVoce mora na cidade de %s e no estado de %s", cidade, estado);
  system("PAUSE");	
  return 0;
}

 

  • Curtir 1
Postado

Ao analisar este código, da para perceber que poderá ter problemas com buffer sujo, e também não irá conseguir ler espaços na leitura da cidade, já o estado irá conseguir ler espaços, porém não é recomendado utilizar essa função gets.

  • Curtir 2
Postado

Recomendo resolver o problema do buffer, existem muitas maneiras de fazer, faça uma pesquisa que encontrará facilmente e teste no seu problema, agora para ler, recomendo para estado e cidade, utilizar este método.

char exemplo[40];

scanf("%[^\n]", exemplo);

Esse scanf irá ler tudo(incluindo espaços, que é o objetivo) até ler um '\n' que será o ENTER, e salvará na string.

  • Curtir 1
Postado

@fehcunha10     faça como @Asrety   disse que dará certo ,  e aproveite também para limpar o buffer do teclado usando o comando fflush , senão depois de ler o primeiro scanf ele pula a segunda leitura do teclado seja com gets ou scanf ,  então seu código com algumas modificações poderia ser assim   :

#include <stdio.h>
int main(int argc, char *argv[]){
  char cidade[30];
  char estado[40];

  printf("Encontre o erro de programação e faça corretamente\n");
  printf("\nDigite a Cidade: ");
  fflush(stdin);
  scanf("%[^\n]", cidade);
  printf("\nDigite o Estado: ");
  fflush(stdin);
  scanf("%[^\n]", estado);//gets(estado);

  printf("\nVoce mora na cidade de %s e no estado de %s\n\n", cidade, estado);
  system("PAUSE");
  return 0;
}

 

  • Curtir 1

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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!