| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1447 人关注过本帖
标题:请教各位大神:printf缓冲区刷新
只看楼主 加入收藏
东阁
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2017-2-27
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
请教各位大神:printf缓冲区刷新
windows + gcc
程序代码:
void store2(){
    int n;
    
    printf("enter max length of the word:");
    scanf("%d",&n);
    char t[++n];
    //printf("length %d",n);
    if(n>0){
        printf("enter your line:");
        char temp ;
        int index=0;
        //fflush(stdin);
        for(;;){
            temp=getchar();
            printf("%d",temp);// temp=10, 这里的换行符是从哪里来的?
            if(index == n || isspace(temp)){
                t[index]='\0';
                for(int i=0;i<=index;i++){
                    printf("%5d:%5d",index,t[index]);
                }
                break;
            }
            t[index] = temp;
            index++;
        }
    }
    fputs(t,stdout);
    
    
}
搜索更多相关主题的帖子: color 缓冲区 
2017-02-27 12:15
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:10 
'\n' 的asc值是 10

不过,fflush(stdin) 是世人皆知的错误用法,不要因为在某些平台上不出错就认为它是正确的
2017-02-27 12:19
东阁
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2017-2-27
收藏
得分:0 
回复 2楼 rjsp
,fflush(stdin)注释掉了啊,我想问的是,这个换行符时怎么出来的,因为在scanf后,就没有刷新过缓冲区了,为什么会有这个换行符了呢,谢谢啊

[此贴子已经被作者于2017-2-27 12:23编辑过]

2017-02-27 12:22
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:5 
回复 3楼 东阁
scanf("%d",&n); 是你难道不是输入一个数字加上回车
2017-02-27 13:13
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
收藏
得分:5 
当执行scanf("%d",&n);的时候,要求你从键盘输入,于是你输入了 10,然后“回车”。缓冲区里自然而然地是:10\n  temp=getchar()把10拿走了,留下了\n,缓冲区里现在就剩下\n于是,下一个 temp=getchar(); 想当然地读取了\n

[此贴子已经被作者于2017-2-27 13:29编辑过]


学C语言从底层开始,学编程从问题开始,一日学会C!!!
2017-02-27 13:28
东阁
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2017-2-27
收藏
得分:0 
回复 4楼 rjsp
谢谢版主大大!
2017-02-27 13:45
东阁
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2017-2-27
收藏
得分:0 
回复 5楼 do8do8do8
谢谢同学!
2017-02-27 13:46
快速回复:请教各位大神:printf缓冲区刷新
数据加载中...
 
   



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

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