#include <iostream>
#include <fstream>
#include <cstdio>
#include <stdio.h>
using namespace std;
int v[101];
int main()
{
int max=0; int a,i;
ifstream f("bac.in");
ofstream g("bac.out");
while(!EOF(f))
{
f >> a;
while(a>10)
if(a%10!=0 && (a/10)%10!=0) v[a%100]++;
a/=10;
}
for(i=10;i<=99;i++) if(v[i]>max) max=v[i];
for(i=10;i<=99;i++) if(v[i]==max) g<<i;
}
我收到错误 14 |错误:' - 1'不能用作函数
如果我使用eof而不是EOF我得到错误'eof'未包含在此范围但我已经包含 cstudio 或 studio.h
我应该改变什么?
答案 0 :(得分:1)
EOF
不是一个函数,它是一个常量。但是,您不应该使用eof
来查找文件末尾(here is why)。
将读取本身放入循环标题中,如下所示:
while(f >> a) {
while(a>10)
if(a%10!=0 && (a/10)%10!=0) v[a%100]++;
a/=10;
}
这样做的原因是返回f >> a
的{{1}}有一个转换运算符 * ,它允许将表达式用作条件。当读取成功时,结果条件评估为istream
;否则,它是true
。
* 转换的细节在C ++ 98和C ++ 11/14中有所不同,但无论C ++标准如何,表达式仍然有效。