| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 505 人关注过本帖
标题:有关字符输入的问题,表示费解!!!
只看楼主 加入收藏
林浩
Rank: 2
等 级:论坛游民
帖 子:47
专家分:23
注 册:2011-1-12
结帖率:90.91%
收藏
已结贴  问题点数:5 回复次数:5 
有关字符输入的问题,表示费解!!!
我用这个输入就不行呢?

for (i = 0; str[i] != '\n'; i++)
{
    scanf("%c", &str[i]);
}
为什么当我回车时,还要继续输入呢,我就是想回车即结束输入
但是这个就可以

for (i = 0; ; i++)
{
    scanf("%c", &str[i]);
    if (str[i] == '\n')
    {
        break;
    }
}
请个兄弟帮忙解释下吧,thank you .
搜索更多相关主题的帖子: 兄弟 
2011-01-15 18:37
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
收藏
得分:2 
for (i = 0; str[i] != '\n'; i++)
{
    scanf("%c", &str[i]);
}
简化为while形式

i = 0;
while( str[i] )
{
     scanf("%c", &str[i]);  
    i++;

}  可以看出什么,当你完成输入str[i]='\n',i++ while()己经判断下一个数组,并不是当前数组,当前数组是'\n',下一个数是无知字符。
ps:不过不会那么巧合等于'\n'吧.

小代码,大智慧
2011-01-15 18:57
yxwsbobo
Rank: 5Rank: 5
等 级:职业侠客
帖 子:345
专家分:306
注 册:2007-10-29
收藏
得分:1 
你自己看看哪里有区别

提示一下

应该换成

str[i-1] != '\n'

How are you 怎么是你?
How old are you   怎么老是你?
2011-01-15 19:26
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:1 


for (i = 0; str[i] != '\n'; i++)  
//这题看起来没问题,可是你看看它的运行,
当i=0时,str[i] != '\n'; i++)
scanf("%c", &str[i]);
 没问题.循环一次后这时的i是等于1时,str[i] != '\n'; i++)  你看循环没问题吧 可是假如你这次输入的是'\n',
str[i] != '\n'这个是str[2] != '\n',程序根本没检查你str[1]的字符所以输入继续

{
    scanf("%c", &str[i]);
}

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-01-15 19:56
zzgzzg00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:388
专家分:627
注 册:2010-8-2
收藏
得分:0 
呵呵  正解

粗心是大敌
2011-01-15 20:34
cacker
该用户已被删除
收藏
得分:1 
提示: 作者被禁止或删除 内容自动屏蔽
2011-01-16 13:13
快速回复:有关字符输入的问题,表示费解!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027442 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved