2011-06-04 145 views

回答

0

ASCII中NULL值的十进制值是0,所以如果你现在在程序中输入它,它会结束。这与换行符不同(十进制10)。

在任何情况下,scanf()都会一直持续下去,直到你输入一个值,所以你需要为循环条件使用某种标记值,例如。如果您仅使用正数,请使用负数;如果你有一个上限,超出这个任意值。否则,你将不得不以其他方式做到这一点。输入一个字符串并将其转换为一个int,如果它不是您的退出字符/字符串。

+0

对不起@尼尔,你指的是什么 - 你能更具体吗? – thelionroars1337 2011-06-04 10:13:19

+0

输入0将结束循环,因为这是NULL的十进制等值。 – thelionroars1337 2011-06-04 10:19:28

+0

对不起,我误解了你,我以为你的意思是进入NUL角色。 – 2011-06-04 10:23:52

0

如果你仔细想想,我敢打赌,你从来没有见过一个真实世界的程序,提示你输入这样的信息。为什么?因为要正确书写它们几乎是不可能的,甚至更难以正确使用。真实世界程序的工作方式是使用GUI或从文件/流中读取输入而无需提示。鉴于这个事实,我从来没有理解为什么这么多新手程序员想要提示用户输入。

话虽如此,你可以在代码中输入值来终止循环。所有的整数值是你程序的有效输入吗?如果是这样,你需要一些其他的终止方式,比如输入文件结束符。

+0

不,你是对的,我从来没有见过任何真实世界的节目。我会尝试EOF的方式。 – 2011-06-04 10:25:39