Ir para o conteúdo
migg

String e os espaços

Mensagens Recomendadas

migg    0
migg

O problema é o seguinte ao escrever o Nome por exemplo:

Miguel Ferreira

em vez de Pedir a Morada passa logo para o curso

mas se escrever

MiguelFerreira

o programa Já pede de seguida a Morada

O que faço para resolver o problema

#include<stdio.h>
#include<stdlib.h>
#include <io.h>
main()
{

FILE *fp;

int NumerodoAluno[5],CodigoPostal;
char Nome[50],Morada[50],Curso[50],Localidade[20];


fp=fopen("test", "r");

printf("\nNumero do Aluno:\n");
fscanf(stdin, "%d",  &NumerodoAluno); 
printf("\nNome do Aluno:\n");
fscanf(stdin, "%s",  Nome);
printf("\nMorada:\n");
fscanf(stdin, "%s",  Morada);
printf("\nCurso:\n");
fscanf(stdin, "%s",  Curso);
printf("\nCodigo Postal:\n");
fscanf(stdin, "%d",  &CodigoPostal);
printf("\nLocalidade:\n");
fscanf(stdin, "%s",  Localidade);

fclose(fp); 

system("Pause");
}

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
karva    0
karva

Isso é porque tens o fscanf para ler apenas uma string, ou seja, um conjunto de caracteres. Uma solução é no ficheiro de teste arranjares um "separador" de nome, que quando é recebido indica que chegaste ao fim do nome, e no programa fazeres um ciclo de fscanf's até encontrares o separador, ou então se tiver apenas dois nomes (este tem o senão de ter SEMPRE que ter os dois nomes), é em vez de fscanf(stdin, "%s",  Nome); usares fscanf(stdin, "%s %s",  Nome);

Cumps

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
karva    0
karva

Pois, mas isso só funciona se cada dado estiver numa linha, se em cada linha estiver uma única informação, isso pode não funcionar.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nata79    0
nata79

Pois, mas isso só funciona se cada dado estiver numa linha, se em cada linha estiver uma única informação, isso pode não funcionar.

certo. se for esse o caso, pode substituir o '\n' por outro caracter qualquer que esteja a separar os campos.

há um artigo muito bom sobre isto na wiki!

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