【发布时间】:2014-10-06 10:34:06
【问题描述】:
我编写了以下代码来接受用户的字符并输入一个数组,直到他输入一个空闲空间('')或一行\n。但是代码不起作用。如在输入中按下空格键或返回键时,我的计算机仍在接受值而不退出循环。
char X[99];
printf ("Type the string without spaces\n");
for (i=0;i<99;i++) {
scanf ("%c",&m);
if(m!=' '&&m!='\n')
X[i]=m;
else i=99;
}
请解释错误。
【问题讨论】:
-
if(m!=' '||m!='\n')对m的所有值求值为真。想一想。 -
但它不能正确评估 ' ' 和 '\n' 。这就是我想要的。
-
要么
m不是空格,则条件为真,要么是空格,则不是换行符,则条件为真。 -
谢谢你们..明白了..我真是个笨蛋。想一想@于浩。太棒了。
-
但代码的功能仍然相同。我所做的更改:1) if(m!=' '&&m!='\n'). 2) 替换了scanf("%c",&m);用 m=getchar();我还应该做出什么改变吗??