| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 760 人关注过本帖
标题:关于字符数据的输入问题
取消只看楼主 加入收藏
firewater
Rank: 1
等 级:新手上路
帖 子:47
专家分:4
注 册:2014-7-13
结帖率:87.5%
收藏
 问题点数:0 回复次数:8 
关于字符数据的输入问题
在做一个例题时,有一个语句while (getchar()!='\n')  我想问下为什么输入的字符不用存进一个字符变量中,如果没有存进内存中,怎么和'\n'比较
2014-08-31 20:53
firewater
Rank: 1
等 级:新手上路
帖 子:47
专家分:4
注 册:2014-7-13
收藏
得分:0 
回复 2 楼 TonyDeng
输入一个字符,并未存入内存中,而是直接与\n比较?是吧
2014-08-31 21:59
firewater
Rank: 1
等 级:新手上路
帖 子:47
专家分:4
注 册:2014-7-13
收藏
得分:0 
回复 7 楼 TonyDeng
还想问下,既然键入的字符存在键盘缓冲区中,那么用putchar(getchar())也可输出相应字符,并不需要定义一个变量来存放。那么如果我想用while语句实现读入一个字符后立即输出该字符,直到输入一个换行符为止,那我用
程序代码:
#include "stdio.h"

void main ()

{
    while (getchar()!='\n')
    {
        putchar(getchar());
    }
}



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



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

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