【发布时间】:2017-01-24 14:59:54
【问题描述】:
程序不会在teste1 函数中编译fgets。或者至少它不能正常工作,它不会让我输入字符串,程序将在打印“Nome do cliente”后立即结束。
如果我禁用函数中的其他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 工作?
-
你应该非常谨慎地声称编译器行为不端——这肯定不是这里的问题;您的代码对
scanf()如何读取整数做出了错误的假设。