标题:不加getchar()为什么输入数据会死循环?
只看楼主
青蝶
Rank: 2
等 级:论坛游民
帖 子:160
专家分:51
注 册:2018-2-4
结帖率:92%
已结贴  问题点数:20 回复次数:1 
不加getchar()为什么输入数据会死循环?
程序代码:
#include<iostream>
#include<cstdio>
using namespace std;

int main(void){
    int a,b,c;
    while(scanf("(%d, %d, %d)",&a,&b,&c)!=EOF){
        getchar();
        printf("%d %d %d\n",a,b,c);
    }
    return 0;
}


按照这个格式输入数据:
(255, 127, 0)
搜索更多相关主题的帖子: getchar 输入 数据 死循环 include 
2019-01-08 20:55
幻紫灵心
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山咔咔里面
等 级:贵宾
威 望:53
帖 子:395
专家分:2640
注 册:2018-3-30
得分:20 
你的输入格式第一个字符必须是: (
而输入了一次后,回车符还在缓冲区。
回车符 != (
scanf读不进,回车永远在,所以后面就一直读取出错。

加getchar()可以读取缓冲区的回车符。

saber,别哭.
2019-01-08 22:03



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




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

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