标题:求问这条语句有什么用,没看明白
只看楼主
流沙河技术员
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2015-12-29
结帖率:75%
已结贴  问题点数:18 回复次数:1 
求问这条语句有什么用,没看明白
要求是编写一个程序,接收用户从键盘输入的字符,当用户按下回车键时表示确认输入,统计用户输入了多少个字符(不含回车符)
#include<stdio.h>
void main()
{
    char c;
    int i=0;
    printf("请输入字符串(以回车确认):\n");
    c=getchar();
    for(i=0;c!='\n';i++)
    {c=getchar();}
    printf("字符串共%d个字符!",i);
}
我如果加上带下划线的这个语句,是正确的,如果去掉,那么回车字符就会被算上。我想请问各位前辈,这是为什么。谢谢
搜索更多相关主题的帖子: 下划线 字符串 键盘 统计 
2016-01-17 11:22
天使梦魔
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
得分:18 
大哥,执行循序啊~~~这么简单的有必要纠结么。


你循环外面的getchar();实际上等于你输入的第一个字符。而第二个字符开始才是循环内的i++,一直到循环结束把最后一个回车算上然后填补你第一个没有算的回车字符

你看下for循环的中断条件c!='\n',就是说C这个字符获取的是回车的时候退出,问题是你循环体内才开始获取字符,i早自加了。
中断条件和获取都不在一个顺序上。
最起码也是这样吧:for(i=0;c!='\n';c=getchar())i++;
2016-01-17 11:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-461153-1-1.html




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

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