错误LNK2019和致命错误LNK1120我在c ++中收到这些错误

时间:2010-04-30 23:00:08

标签: c++ arrays linker-errors

我不知道如何解决这些错误。我写了整个代码,并试图看看它是否是括号的问题,但也没有帮助。我不知道它是什么线但是我相信它就是这个功能。

  

错误LNK2019:函数_main中引用的未解析的外部符号“int __cdecl read_file_in_array(int(* const)[3])”(?read_file_in_array @@ YAHQAY02H @ Z)       致命错误LNK1120:1个未解析的外部

我相信这个与括号有关

    #include <iostream>
    #include <fstream>
    using namespace std;
    int read_file_in_array(int exam[100][3]);
    double calculate_total(int exam1[], int exam2[], int exam3[]); // function that calcualates grades to see how many 90,80,70,60
    //void display_totals();
    double exam[100][3];

int read_file_in_array(double exam[100][3])
    {
        ifstream infile;  
        int exam1[100];
        int exam2[100];
        int exam3[100];
      infile.open("grades.txt");// file containing numbers in 3 columns
        if(infile.fail()) // checks to see if file opended
            {
            cout << "error" << endl;
            }
        int num, i=0,j=0;
        while(!infile.eof()) // reads file to end of line
          {
              for(i=0;i<100;i++) // array numbers less than 100
              {
                for(j=0;j<3;j++) // while reading get 1st array or element
                infile >> exam[i][j];
                infile >> exam[i][j];
                infile >> exam[i][j];
                cout << exam[i][j] << endl;
                    {
                        if (! (infile >> exam[i][j]) )
                        cout << exam[i][j] << endl;
                    }
              exam[i][j]=exam1[i];
              exam[i][j]=exam2[i];
              exam[i][j]=exam3[i];
              }     
        infile.close();
      }
    return 0;
    }

   double calculate_total(int exam1[],int exam2[],int exam3[])
    {
        int calc_tot,above90=0, above80=0, above70=0, above60=0,i,j, fail=0;
        int exam[100][3];
        calc_tot=read_file_in_array(exam);
        for(i=0;i<100;i++)
            {
                exam1[i]=exam[100][0];
                exam2[i]=exam[100][1];
                exam3[i]=exam[100][2];
                if(exam[i][j] <=90 && exam[i][j] >=100)
                    {
                    above90++;
                        {
                        if(exam[i][j] <=80 && exam[i][j] >=89)
                            {
                            above80++;
                                {
                                if(exam[i][j] <=70 && exam[i][j] >=79)
                                    {
                                    above70++;
                                        {
                                        if(exam[i][j] <=60 && exam[i][j] >=69)
                                            {
                                            above60++;
                                                {
                                                if(exam[i][j] >=59)
                                                    {
                                                    fail++;
                                                }
                                                }
                                        }
                                        }
                                }
                                }
                        }
                        }
                }
        }
        return 0;
    }

    int main()
    {
        int go,go2,go3;
        int exam[100][3];
        int exam1[100];
        int exam2[100];
        int exam3[100];

        go=read_file_in_array(exam);
        go2=calculate_total(exam1,exam2,exam3);
        //go3=display_totals();
        cout << go,go2,go3;
        return 0;
    }

1 个答案:

答案 0 :(得分:6)

您的函数原型声明:

int read_file_in_array(int exam[100][3]);

但是函数本身被定义为:

int read_file_in_array(double exam[100][3])

确保在两者中使用相同的类型。