Ir ao conteúdo

Duvida programação C, nao faz While...??


likansing

Posts recomendados

Postado

Olá amigos,

Estou fazendo este programinha abaixo porém quando ele chega no comando While, onde deveria esperar eu digitar e dar enter para continuar, ele passa reto..

O que estou fazendo de errado??

percebi que quando eu comento a partir de inicio até begin funciona....acho que pode ser algo no scanf talves, não sei....

Será q alguém pode me ajudar???

#include<stdio.h>

main(){

FILE *fptr;

char string[50];

int opcao;

fptr=fopen("data_inicio.txt","w");

printf ("--> Escolha a opcao de busca\n");

printf ("\n");

printf ("(1) Busca MAC especifico\n");

printf ("(2) Busca S/N especifico\n");

printf ("(3) Busca todos os dados a partir da data especifica\n");

printf ("\n");

inicio:

printf ("Digite a opcao de busca:");

scanf ("%d", &opcao);

if (opcao == 1)

goto mac;

else

{ if (opcao == 2)

goto SN;

else

{ if (opcao == 3)

goto data;

else

goto inicio;

}

}

mac:

printf ("MAC");

goto begin;

SN:

printf ("SN");

goto begin;

data:

printf ("data");

goto begin;

begin:

printf ("\n");

printf ("--> Digite a data de inicio da busca:");

while(strlen(gets(string))>0)

{

fputs(string,fptr);

fputs("\n",fptr);

}

fclose(fptr);

}

Postado
Olá amigos,

Estou fazendo este programinha abaixo porém quando ele chega no comando While, onde deveria esperar eu digitar e dar enter para continuar, ele passa reto..

O que estou fazendo de errado??

percebi que quando eu comento a partir de inicio até begin funciona....acho que pode ser algo no scanf talves, não sei....

Será q alguém pode me ajudar???

#include<stdio.h>

main(){

FILE *fptr;

char string[50];

int opcao;

fptr=fopen("data_inicio.txt","w");

printf ("--> Escolha a opcao de busca\n");

printf ("\n");

printf ("(1) Busca MAC especifico\n");

printf ("(2) Busca S/N especifico\n");

printf ("(3) Busca todos os dados a partir da data especifica\n");

printf ("\n");

inicio:

printf ("Digite a opcao de busca:");

scanf ("%d", &opcao);

if (opcao == 1)

goto mac;

else

{ if (opcao == 2)

goto SN;

else

{ if (opcao == 3)

goto data;

else

goto inicio;

}

}

mac:

printf ("MAC");

goto begin;

SN:

printf ("SN");

goto begin;

data:

printf ("data");

goto begin;

begin:

printf ("\n");

printf ("--> Digite a data de inicio da busca:");

while(strlen(gets(string))>0)

{

fputs(string,fptr);

fputs("\n",fptr);

}

fclose(fptr);

}

Ainda não manjo de arquivos em disco e não sei se esse é o seu problema, mas a função scanf você pode usar ela usando um espaço na identificação do tipo assim: "scanf(" %d",&opcao)"; Quando não seu usa esse " "(espaco) pode dar alguns bugs como passar para a próxima parte do código sem fazer a leitura corretamente do dado entrado. Acho que isso tem haver com buffer do teclado ou por ele pegar um "espaco". Não sei bem a explicação disso, mas é bem característico do seu problema. Em outro tópico foi recomendado essa prática também. Não sei se deu pra ajudar.

Até

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!