Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Quando executo o código abaixo e escolho a opção "1", o programa não espera o usuário digitar o texto e já passa para a próxima instrução.
Coloquei um "sleep(5)" depois do "printf("Digite seu texto e pressione ENTER: ");" somente para testar e dessa maneira o programa espera (dentro do limite do sleep) o usuário digitar seu texto a ser gravado.
Estou compilando no LINUX.
Se alguém puder me ajudar, agradeço.
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
FILE *fptr;
char ch;
int escolha;
do{
printf("\tMenu\n\n0)Sair\n\n1)Inserir\n\n2)Imprimir\n\nOpção: ");
scanf("%d", &escolha);
switch (escolha)
{
case 1:
{
if ((fptr=fopen("exercicio.txt", "w"))==NULL)
{
printf ("Erro ao abrir.");
return 1;
}
printf("Digite seu texto e pressione ENTER: ");
while ((ch=getchar())!= '\n')
{
fputc(ch,fptr);
}
fclose(fptr);
break;
}
case 2:
{
if ((fptr=fopen("exercicio.txt", "r"))==NULL)
{
printf ("Erro ao abrir");
return 1;
}
while ((ch=fgetc(fptr))!=EOF)
{
printf("%c", ch);
}
fclose(fptr);
printf("\n\n");
break;
}
default:
{
if(escolha!=0)
printf("\n\n Opcao inválida!\n\n");
break;
}
}
}while (escolha!=0);
return 0;
}Carregando comentários...