Программа не будет компилировать fgets
в функции teste1
. Или, по крайней мере, он не работает должным образом, он не позволит мне ввести строку, программа закончится сразу после того, как она напечатает «Nome do cliente».fgets будет проигнорирован, вероятно, из-за других scanf's
Если я отключу другую функцию scanf
, она будет работать без каких-либо проблем.
Как заставить fgets работать?
#include <stdio.h>
void teste1(){
char teste[50];
printf("Nome do cliente\n");
fgets(teste,50,stdin);
}
void teste2(){
teste1();
}
void teste3(){
int opc1,opc2;
printf("\nSeleccione a área desejada\n1- Clientes\n2- Concessionários\n3- Carros de demonstração\n");
scanf("%d",&opc1);
printf("\nSeleccione a área desejada\n1- Inserir\n2- Alterar\n3- Remover\n4- Consultar\n");
scanf("%d",&opc2);
teste2();
}
int main()
{
teste3();
}
Итак ... в чем вопрос? –
Как мне заставить fgets работать? – xickoh
Вы должны быть крайне осторожны в том, чтобы утверждать, что компилятор плохо себя ведет - это, безусловно, не проблема; ваш код делает ложное предположение о том, как 'scanf()' читает целые числа. –