【发布时间】:2013-11-29 12:31:58
【问题描述】:
在我的程序中,我需要读取这种格式的数字——数字、数字、数字等,当用户按下 ctrl+d 时它会结束。我切换scanf("%d",&i)和scanf("%c",&c)。
我的问题是,程序结束,当我按 ctrl+d 3 次时,第一次和第二次由于某种原因它忽略了它。我还注意到,如果我调试并写入:“5, 6ctrl+d”,它会读取“5”,然后等待下一个输入。为什么,当已经有 6 和 ctlr+d 时?谢谢
我的代码:
for (;;)
{
if (cislo==1)
{
res=scanf("%d",&matice[x][y]);
if (res==-1)
{
...
return 1; /* i want EOF to be after number, not char */
} else
{
...
cislo=0;
}
} else
{
res=scanf("%c",&znak);
if (res==-1)
{
...
break;
} else
{
...
cislo=1;
};
};
};
【问题讨论】:
-
Bump,还有更多帮助吗?不知道如何编辑代码以使其正常工作