标题:关于输入输出流的操作问题
只看楼主
Alien_Lee
Rank: 8Rank: 8
来 自:Linux帝国
等 级:蝙蝠侠
威 望:7
帖 子:149
专家分:739
注 册:2016-7-19
结帖率:83.33%
已结贴  问题点数:10 回复次数:4 
关于输入输出流的操作问题
如果说getchar()是从标准输入流中读取数据,那么如果我们先将数据写入标准输入流中,getchar()是否能读取到数据呢?
程序代码:
#include<stdio.h>
#include<string.h>

int main(void)
{
    char ch;
    char re;
    ch='a';

    fputc(ch,stdin);

    re=getchar();

    putchar(re);

    return 0;
}
然而,这个测试程序并没有成功,getchar()没有从我们写入stdin中读取到a;

然后将程序改为看起来较为直接的:
程序代码:
#include<stdio.h>
#include<string.h>

int main(void)
{
    char ch;
    char re;
    ch='a';

    fputc(ch,stdin);
   

    re=getc(stdin);

    putchar(re);

    return 0;
}
然而,一样没有成功。
分析原因大概如下:
1.没有成功将字符a写入标准输入流中。
2.getc或者说getchar函数在调用的时候刷新了stdin。

请教各位网友,是什么原因呢?该如何测试?
搜索更多相关主题的帖子: getchar char 写入 include stdin 
2017-08-15 21:56
lmlm1001
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:4
帖 子:107
专家分:550
注 册:2015-3-1
得分:5 
ungetc
2017-08-15 22:47
虾米小小小
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:30
专家分:135
注 册:2017-7-22
得分:5 
fputc()是向指定流中写入一个字符的;
fputc(ch,stdin)在这写入失败了.......
2017-08-17 20:33
Alien_Lee
Rank: 8Rank: 8
来 自:Linux帝国
等 级:蝙蝠侠
威 望:7
帖 子:149
专家分:739
注 册:2016-7-19
得分:0 
回复 3楼 虾米小小小
那应该怎么把字符写到stdin中让getchar能够读取?

  DEBUG的过程就是进步的过程,每一个小错误都是大问题!...
2017-08-19 22:00
虾米小小小
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:30
专家分:135
注 册:2017-7-22
得分:0 
fgetc(stdin);
getchar();  //从缓冲区里读取一个字符
你可以写俩字符,一个给fgetc取走了,另一个留给getchar()呗......
2017-08-20 08:58



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




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

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