| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
跟大牛学C++学算法数据结构
共有 199 人关注过本帖
标题:不加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)
2019-01-08 20:55
幻紫灵心
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山咔咔里面
等 级:贵宾
威 望:34
帖 子:322
专家分:2218
注 册:2018-3-30
  得分:20 
你的输入格式第一个字符必须是: (
而输入了一次后,回车符还在缓冲区。
回车符 != (
scanf读不进,回车永远在,所以后面就一直读取出错。

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

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







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

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