| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 760 人关注过本帖
标题:关于字符数据的输入问题
只看楼主 加入收藏
erty1001
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:331
专家分:1433
注 册:2014-8-31
收藏
得分:0 
简单说说
    while (getchar()!='\n')
    {
        putchar(getchar());
    }
每一次循环 判断体 (判断条件时) 都要输入一个字符。 这个字符并没有执行 输出函数
 循环体里面 要输入一个字符并且输出  

结论就是 你这样做 可能只能帮你输出一半的字符 。
char ct;
    while ( ct=getchar() !=  '\n' )
    {
        putchar(ct);
    }
2014-09-01 10:07
firewater
Rank: 1
等 级:新手上路
帖 子:47
专家分:4
注 册:2014-7-13
收藏
得分:0 
回复 10 楼 TonyDeng
还不是太明白,不过我把代码改了一下,定义了一个变量,
程序代码:
#include "stdio.h"

void main ()

{
    char c;
    while ((c=getchar())!='\n')
    {
        putchar(c);
    }
}
就可以了


还有另一个
程序代码:
#include "stdio.h"

void main ()

{
    char c;
    for(;(c=getchar())!='\n';)
        printf("%c",c);
}




我发现只要没定义一个变量,没变量储存,那么就不能输出一个正确答案。这是因为系统随机分配吗
2014-09-01 10:12
firewater
Rank: 1
等 级:新手上路
帖 子:47
专家分:4
注 册:2014-7-13
收藏
得分:0 
回复 11 楼 erty1001
哦哦
2014-09-01 10:14
firewater
Rank: 1
等 级:新手上路
帖 子:47
专家分:4
注 册:2014-7-13
收藏
得分:0 
回复 11 楼 erty1001
也就是那两个getchar是不一样的,要定义变量才行
2014-09-01 10:16
erty1001
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:331
专家分:1433
注 册:2014-8-31
收藏
得分:0 
“也就是那两个getchar是不一样的,要定义变量才行 ”
不能这么理解

简单说说呀:
两次在循环中(包括了循环体和循环条件) 遇到 getchar() 函数,执行两次从流中取单个字符的过程,只输出其中一个的话 就会编程成意向不到的结果
2014-09-01 10:26
wssy213
Rank: 12Rank: 12Rank: 12
来 自:湖南
等 级:贵宾
威 望:10
帖 子:967
专家分:3703
注 册:2014-6-6
收藏
得分:0 
以下是引用firewater在2014-9-1 10:12:12的发言:

还不是太明白,不过我把代码改了一下,定义了一个变量,
#include "stdio.h"
 
void main ()
 
{
    char c;
    while ((c=getchar())!='\n')
    {
        putchar(c);
    }
}就可以了
 
 
还有另一个#include "stdio.h"
 
void main ()
 
{
    char c;
    for(;(c=getchar())!='\n';)
        printf("%c",c);
}
 
 
 
我发现只要没定义一个变量,没变量储存,那么就不能输出一个正确答案。这是因为系统随机分配吗

“这是因为系统随机分配吗”
你必须要清楚的了解自己所写的程序的每一个环节,从客观事实去得出答案,而不是瞎猜

坚持----------------------------------唯一的道路
shit ! ! !
2014-09-01 10:49
firewater
Rank: 1
等 级:新手上路
帖 子:47
专家分:4
注 册:2014-7-13
收藏
得分:0 
回复 16 楼 wssy213
因为不太明白这些,刚学不久
2014-09-01 10:56
firewater
Rank: 1
等 级:新手上路
帖 子:47
专家分:4
注 册:2014-7-13
收藏
得分:0 
回复 15 楼 erty1001
我明白了,每次getchar都会获得一个字符与‘\n’比较然后未储存便销毁内部的局部变量,于是下一个语句就获取了下一个字符。是这样理解吧
2014-09-01 11:08
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我前面已经说得很清楚了,你不仔细看、仔细理解就急着问。那个就是原理,一理通百理明,能解决你以后经常遇到的问题,而不是具体某个问题的答案。


[ 本帖最后由 TonyDeng 于 2014-9-1 11:37 编辑 ]

授人以渔,不授人以鱼。
2014-09-01 11:11
firewater
Rank: 1
等 级:新手上路
帖 子:47
专家分:4
注 册:2014-7-13
收藏
得分:0 
回复 19 楼 TonyDeng
嗯,受教了。因为是自学,对很多知识点都不了解,思考的也不够。
2014-09-01 11:19
快速回复:关于字符数据的输入问题
数据加载中...
 
   



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

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