出现重载文件错误?

时间:2017-10-10 20:12:54

标签: c++ xcode

处理一些需要我将数据输出到文件中的c ++作业,然后从中读取数据并得到数字和平均值的总和。到目前为止,这是我的代码:

#include <iostream>
#include <fstream>
using namespace std;

int main() {
    ofstream outfile;
    outfile.open("test.txt");
    outfile << "28 36 20 36 2 81 12 47/n ";
    outfile << "62 1 29 32 923 39 21 12/n ";
    outfile << "67 23 83 2 10 34 755 23/n ";
    outfile << "24 29 47 7 29 86 426 9/n ";
    outfile << "1 36 76 24 628 12 8 28/n ";
    outfile << "55 29 63 825 51 4 739 34/n ";
    outfile << "38 29 16 923 27 2 84 28/n ";
    outfile.close();

ifstream infile;
infile.open("test.txt");
ifstream read("test.txt");
int num, sum;
read >> num >> sum;

if (read.is_open())
{
    string Array_1[8];
    for (int i = 0; i <= 8; i++)
    {
        read >> Array_1[i];
        while (read.good())
        {
            count++;
            sum += num;
            double avg = num/8;
            cout << "Total: " << num;
            cout << "   Average: " << avg;
        }
    }

我希望将第一行输出读回给用户并一起添加。但是,在我的计数器旁边我收到错误:无法解析对重载函数的引用;你的意思是打电话吗?

我还是c ++的新手。任何想法如何解决它?谢谢。

1 个答案:

答案 0 :(得分:2)

您未能声明count,但通过

使用此符号
using namespace std;   // don't ever do that!
count++;

那么您认为编译器会理解count在这里是什么?事实证明,在您刚刚全局可见的namespace中实际存在该名称的符号:std::count(),这是一个重载的函数模板。由于这是唯一可能与名称匹配的候选者,因此编译器会尝试在此处使用它,但这不起作用,因此会出错。

为了避免此类问题以及由此产生的难以理解的错误消息,从不using namespace std;