Ir ao conteúdo
  • Cadastre-se
Victorgaiva

Problema na leitura da entrada

Recommended Posts

Olá. Eu estou fazendo um trabalho e estou com um problema na leitura.

A entrada deve ser da seguinte forma e eu tenho que armazenar em uma lista duplamente encadeada

2(numero de entradas)

981274337382937429381291923030943(primeiro numero)

63363728299202832(segundo numero)

+(operação)

64387433383746

9373737282

-

Eu tenho que armazenar em uma lista duplamente encadeada mas estou com um grande problema


...
//Inicio do laço de repetição
scanf("%d ", &n);
for(i = 0; i < n; i++)
{//inicio laço
//passo 1: leia o primeiro numero
printf("num1:\n");
num1 = readnumber();
//elimine os zeros a esquerda desse numero
printf("0's num1\n");
elimina(num1);

//passo2: leia o segundo numero
printf("num2:\n");
num2 = readnumber();
//elimine os zeros a esquerda desse numero
printf("0's num2\n");
elimina(num2);
...

sendo o codigo da leitura esse


{
celula *lst = newlisthead(); //lista que armazena o numero lido
char c_aux; //caractere de auxilio a leitura e comparação

//repita o processo enquanto nao houver um '\n'
while(1)
{
c_aux = getchar(); //Leia o algarismo como um caracter

if(c_aux =='\n') //verifique se o caractere é um fim de linha '\n', caso seja, pare o laço
break;

lst = addtotail(lst); //adiciona uma nova celula a seguir do elemento atual
lst->num = c_aux-48; //salva o caracter lido como um inteiro na celula atual

}


return lst; //retorna o ponteiro para a lista que armazena o numero lido
}
celula *readnumber()

sendo que a função "elimina();" retira os zeros a esquerda do numero.

quando eu executo o programa acontece isso

erro.jpg

Eu sei que o meu programa para de funcionar porque eu to enviando um ponteiro NULO para a função "elimina();"

Isso quer dizer que meu programa nao esta lendo um dos numeros e ta pulando direto por causa do "\n". Outra coisa importante é que, depois que eu entro com o numero de repetições, ele nao imprime que esta pronto para ler o "num1"

Alguém pode me ajudar? eu nao sei como eu faço a leitura e o armazenamento dessa maneira. eu tentei com "cin >> n" pra ler as repetições mas o problema continua

A minha entrada deve ser da seguinte forma

2\n (repetições)

\n

1902310239\n (numero1)

83219814\n (numero2)

+\n (operação)

81247\n

124\n

-\n

mas eu to tentando resolver o problema da leitura dos numero primeiro e depois ver como eu faço pra ler aquele "\n" sozinho ali, que eu nao sei como.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×