鱼C论坛

 找回密码
 立即注册
查看: 3607|回复: 2

C语言怎么取输出输入流

[复制链接]
发表于 2012-6-28 16:26:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
用了1次scanf() 在用第二次就会跳过去

所以就要用getchar()来消除输入输出流的内容。。

可是如果里面没有内容的话。它就会等待用户 getchar() 的,

不知道有什么方法可以取出输入输出流的数量,适当的getchar()

我用汇编本想实现它的数量是存放在

mov eax,[00427a34]
mov ebx,[eax]

但是 这个地址是 编译的时候分配的.所以是会变的。。。也没办法。

要深入跟踪在哪里的话,很困难啊。。。。

不知道有什么函数可以实现取输入输出流数~
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-6-29 02:33:27 | 显示全部楼层
参考源码
FILE _iob[_IOB_ENTRIES] = {
        /* _ptr, _cnt, _base,  _flag, _file, _charbuf, _bufsiz */

        /* stdin (_iob[0]) */

        { _bufin, 0, _bufin, _IOREAD | _IOYOURBUF, 0, 0, _INTERNAL_BUFSIZ },

        /* stdout (_iob[1]) */

        { NULL, 0, NULL, _IOWRT, 1, 0, 0 },

        /* stderr (_iob[3]) */

        { NULL, 0, NULL, _IOWRT, 2, 0, 0 },

};
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-6-29 10:54:10 | 显示全部楼层
为什么要去提取那个东西? 清空输入缓存就好了。。。fflush(stdin); 这函数就可以了。。。这个是清空输入缓存,放在第一个scanf后面 第二个scanf就不会跳过了,getchar也一样的。。。
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-13 23:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表