| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 870 人关注过本帖
标题:getcha简单问题
只看楼主 加入收藏
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
收藏
得分:0 
恩恩    数据流

不要不要的。。。
2015-07-29 11:15
来生再见
Rank: 1
来 自:江西省抚州市
等 级:新手上路
威 望:1
帖 子:39
专家分:9
注 册:2015-9-13
收藏
得分:0 
输入数据都是先进入到了键盘缓冲区的,
当你输入12345回车的时候,
才进入到键盘缓冲取,
所以键盘输入流的缓冲区是行缓冲模式
你可以使用
FILE
结构体里面的成员变量 的信息就知道了,
_cnt;是缓冲区内还有多少字符
_base缓冲区的地址。。。
FILE 在stdio.h里面定义

重新开始,努力
2015-09-22 00:33
来生再见
Rank: 1
来 自:江西省抚州市
等 级:新手上路
威 望:1
帖 子:39
专家分:9
注 册:2015-9-13
收藏
得分:0 
这是文件缓冲区的问题,起始getchar()输入个字符是先进入键盘缓冲区的,键盘缓冲区是行缓冲区
一直接受字符到缓冲区,直到遇到了回车(转换成'\n') 这个时候getchar()就开始在键盘缓冲取取出数据


程序代码:
//stdin是FILE 类型的结构体
  struct _iobuf {
        char *_ptr;//缓冲区内容的当前指针
        int   _cnt;//缓冲区的有效数据
        char *_base;//缓冲区的起始地址
        int   _flag;//缓冲区的文件流标志  判断文件流是不是结束了或者出错
        int   _file;//文件标识符
        int   _charbuf;//双字节缓冲 缓冲2个字节
        int   _bufsiz;//缓冲区的大小
        char *_tmpfname;//临时文件
        };
//在stdio里面有定义
printf("缓冲区地址:%d",stdin->_cnt);//输出还有多少个字符,
还有其他的信息也可以这样输出


重新开始,努力
2015-09-24 09:45
快速回复:getcha简单问题
数据加载中...
 
   



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

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