gpt4 book ai didi

c - EOF 控制 D 第一次不工作

转载 作者:太空宇宙 更新时间:2023-11-04 02:04:39 25 4
gpt4 key购买 nike

我也有这样的问题

Why do i have to press ctrl+d several times for scanf to see it?

我想退出循环,当我输入数字 0 或 ctrl + D 时。只有当我重复组合时它才有效,在我提到的主题中,解释了原因,但我不知道如何解决我的问题代码,所以我决定问

这是我的部分代码

do{
scanf("%f", &coin);
payment=payment+coin;
if ((coin !=0) && (coin !=100) && (coin !=50) && (coin !=20) && (coin !=10) && (coin !=5) && (coin !=2) && (coin !=1) && (coin !=0.5) && (coin*100 !=20) && (coin*100 !=10) && (coin*100 !=5) && (coin*100 !=2) && (coin*100 !=1)){
if (coin>=1){
rest=coin;
while(rest>=1)
rest--;
if (rest!=0)
printf("%.2f is invalid!\n", coin);
else
printf("%.0f is invalid!\n", coin);
}

else
printf("%.2f is invalid!\n", coin);

return(EXIT_FAILURE);
}


}while (coin != 0 && (getchar()!=EOF));

最佳答案

而不是只检查 Ctrl-D , 检查 scanf 是否成功.

scanf将返回 1成功阅读 coin , 否则 break来自 while .

if (scanf("%f", &coin) != 1)
break;

同时改变条件

 }while (coin != 0 );

关于c - EOF 控制 D 第一次不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22256718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com