为什么执行我的程序时会忽略多项式 B 读取?(第 3 行)如何解决这个问题?
case (SUM):
puts("Enter polynom B: ");
fgets(str_2, 255, stdin);
rc = get_polynom(str_2, &lst_2);
//print_list(lst_2);
puts("");
polynom_addiction(&lst, &lst_2, &res_list);
print_list(res_list);
break;
case (DVD):
break;
}
主要开始:
int main()
{
int rc = OK;
char choice[255];
char str[255];
char str_2[255];
node_t *lst = NULL;
node_t *lst_2 = NULL;
node_t *res_list = NULL;
double a;
puts("Enter polynom: ");
fgets(str, 255, stdin);
rc = get_polynom(str, &lst);
print_list(lst);
puts("CHOSE THE ACTION: val; ddx; sum; dvd");
fgets(choice, 4, stdin);
的经典问题
\n
,留在输入流中。阅读动作:例如,用户将输入
sum\n
。这种有fgets
限制的调用4
只计算三个字符sum
,\n
并将保持在输入流中。这一篇\n
将在接下来阅读fgets
。它在外观上看起来像是被忽略了。该问题的正确解决方案包括清理流中剩余的“尾巴”……但在您的情况下,基于“友好用户”,您可以简单地建议不要阅读
4
,而是“一路”阅读