Ir ao conteúdo
  • Cadastre-se

Problema na leitura da entrada


Victorgaiva

Posts recomendados

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.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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