Ir ao conteúdo

Posts recomendados

Postado
int main() {
	char nome[30];
	int idade;
	char sexo;
	char CPF[11];
	float salario;
	
	printf("*Nome: \n");
	scanf("%s", &nome);
	printf("*Idade: \n");
	scanf("%d", &idade);
	printf("*Sexo: \n", sexo);
	scanf("%c", &sexo);
	printf("*CPF: \n", CPF);
	scanf("%s", &CPF);
	printf("*Salario: \n");
	scanf("%f", &salario);
	printf("**********ETIQUETA***********\n");
	printf("*Nome: %s\n", nome);
	printf("*Idade: %d\n", idade);
	printf("*Sexo: %c\n", sexo);
	printf("*CPF: %s\n", CPF);
	printf("*Salario: %f\n", salario);
	printf("*******************************");
	
	return 0;
}

Criei esse código, eu acho que está tudo certo, compila porém quando executa, mostra o Nome:, só que depois disso que você informa o nome quando aperta enter não vai pro próximo simplesmente faz um somente e completa o resto com o que foi digita na variável nome, onde o erro está?

Postado
int main() {
	char nome[61];
	int idade;
	char sexo[9];
	char CPF[11];
	float salario;
	
	printf("*Nome:");
	scanf("%s", nome);
	printf("\n*Idade:");
	scanf("%d", &idade);
	printf("\n*Sexo:", sexo);
	scanf("%c", sexo);
	printf("\n*CPF:", CPF);
	scanf("%s", CPF);
	printf("\n*Salario:");
	scanf("%f", &salario);
	printf("**********ETIQUETA***********\n");
	printf("*Nome: %s\n", nome);
	printf("*Idade: %d\n", idade);
	printf("*Sexo: %c\n", sexo);
	printf("*CPF: %s\n", CPF);
	printf("*Salario: %f\n", salario);
	printf("*******************************");
	return 0;
}

Tirei os & das variáveis string

Postado

Ok, só falta colocar a função fflush depois de cada scanf. E coloque & no scanf de caractere :D . E não coloque a variável sexo  e CPF dentro do printf, pois nem valor foi dado a eles ainda.

Postado

Coloca & para tudo exceto strings. E nos primeiros printf você está tentando chamar as variáveis sexo e CPF, mas não tem informação úteis ainda nessas variáveis. A função é fflush(stdin).

Postado

@allanxdOk já fiz o que você falou e pelo jeito você também nem leu o código porque o nome é char, o sexo é char também e o CPF também é char ou seja não precisa de & como você falou em cima que precisava e o que eu estou tentando passar no código é para aparecer CPF para ele digitar o CPF e o sexo também é para aparecer sexo e para ele digitar em frente ao sexo, quero a resposta onde está o erro está tudo certo não?

 

Postado

É uma boa pergunta para quem está iniciando, mas vou ser direto: char nome[30] e char CPF[11] são strings (conjunto de caracteres), char sexo é um caractere.

 

Agora faça o que eu gentilmente te falei e depois coloque o código aqui.

Postado

@allanxdO que você está querendo dizer é que depois que informo o que é necessário não vai pra linha debaixo e executa o comando debaixo, como já armazenou essa variável já possui ela e mostra no printf pois já possui ela não seguindo a ordem é isso? E o mesmo erro continua

 

Postado

Até daria o código consertado aqui (sim, já arrumei), mas você é iniciante e creio eu que você quer aprender, né? Se sim então por favor coloque o teu código baseado em tudo em que eu escrevi para você até agora.

 

Algumas observações: o que você me diz sobre estas duas linhas printf("*Sexo: \n", sexo); e printf("*CPF: \n", CPF);? Comparado com outras linhas iguais a essas que você mesmo fez, acha que está certo?

Postado

@allanxdArrumei o código porém como faz esse tal de fflush(stdin)?

int main() {
	char nome[61];
	int idade;
	char sexo;
	char CPF[11];
	float salario;
	
	printf("*Nome:");
	scanf("%s", nome);
	printf("\n*Idade:");
	scanf("%d", &idade);
	printf("\n*Sexo:");
	scanf("%c", sexo);
	printf("\n*CPF:");
	scanf("%s", CPF);
	printf("\n*Salario:");
	scanf("%f", &salario);
	printf("**********ETIQUETA***********\n");
	printf("*Nome: %s\n", nome);
	printf("*Idade: %d\n", idade);
	printf("*Sexo: %c\n", sexo);
	printf("*CPF: %s\n", CPF);
	printf("*Salario: %f\n", salario);
	printf("*******************************");
	return 0;
}

Agora consigo colocar o nome porém o mesmo pula a idade, dá um erro que retornou um valor e depois sai

Postado

@allanxdOlhe o código 

int main() {
	char nome[61];
	int idade;
	char sexo[9];
	char CPF[11];
	float salario;
	
	printf("*Nome:");
	scanf("%s", nome);
	fflush(stdin);
	printf("\n*Idade:");
	scanf("%d", &idade);
	fflush(stdin);
	printf("\n*Sexo:");
	scanf("%c", sexo);
	fflush(stdin);
	printf("\n*CPF:");
	scanf("%s", CPF);
	fflush(stdin);
	printf("\n*Salario:");
	scanf("%f", &salario);
	fflush(stdin);
	printf("**********ETIQUETA***********\n");
	printf("*Nome: %s\n", nome);
	printf("*Idade: %d\n", idade);
	printf("*Sexo: %s\n", sexo);
	printf("*CPF: %s\n", CPF);
	printf("*Salario: %f\n", salario);
	printf("*******************************");
	return 0;
}

Só que agora depois que pega os dados não está mostrando o M (Masculino) quando é somente caractere e quando é string só mostra o M qual erro é?

Postado

scanf("%c", sexo); aí está pedindo um caractere (coloque &);

printf("*Sexo: %s\n", sexo); aí está tentando mostrar uma string, mas sexo é um caractere, então use %c.

Postado
int main() {
	char nome[61];
	int idade;
	char sexo;
	char CPF[11];
	float salario;
	
	printf("*Nome:");
	scanf("%s", nome);
	fflush(stdin);
	printf("\n*Idade:");
	scanf("%d", &idade);
	fflush(stdin);
	printf("\n*Sexo:");
	scanf("%c", &sexo);
	fflush(stdin);
	printf("\n*CPF:");
	scanf("%s", CPF);
	fflush(stdin);
	printf("\n*Salario:");
	scanf("%f", &salario);
	fflush(stdin);
	printf("**********ETIQUETA***********\n");
	printf("*Nome: %s\n", nome);
	printf("*Idade: %d\n", idade);
	printf("*Sexo: %c\n", sexo);
	printf("*CPF: %s\n", CPF);
	printf("*Salario: %f\n", salario);
	printf("*******************************");
	return 0;
}

Alterei o código porém quando mostra não aparece o sexo M(Masculino) ou F (Feminino)

Tem que colocar char sexo[1]?

Postado

Deve ser culpa do Dev-C++ mesmo, pois estou usando o Code::Blocks e o código funciona normalmente no que se propõe. Recomendo usar o Code::Blocks, o Dev já não está em desenvolvimento há tempos.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!