读取错误 - 在readig时无限期

时间:2015-12-28 08:39:03

标签: c++

在那个代码我遇到了问题。它无限期地读取,我不知道如何阻止它

App.Router.map(function() {
  this.resource('records', function() {
    // this.route('index') is created automatically in here
    this.route('new');
  });

  this.route('about');
});

我需要在阅读时停止它 这是输入文件:

while(scanf("%d",&v[++n])){
    fr[v[n]]++;
}

输出文件是:

5 6 4 1 2
5 7 2

1 个答案:

答案 0 :(得分:2)

scanf可能会返回EOF,通常为-1值,-1在while中使用会导致为true - 因此您将永远不会结束循环。

所以正确的代码是:

while(scanf("%d",&v[++n]) == 1){
                          ^^^^ ---- 1 indicates number of items that 
                                    were filled in argument list