未定义参考?

时间:2014-02-23 01:05:34

标签: c++ undefined-reference

我收到一个未定义的引用错误。我盯着这段代码大约一个小时试图找出来。这是我得到的错误。

fileToArray(std::basic_fstream<char, std::char_traits<char> >&, int*, int)

的未定义引用

这是我的代码。

#include <iostream> 
#include <fstream>
#include <string>
#include <cctype>
#include <cstring>

using namespace std;

void arrayToFile(fstream&, int*, int);
void fileToArray(fstream&, int*, int);

int main()
{
fstream dataFile;
int numInt; //Size of array
int* numArray; //Array to hold integers
int num; //Integer for user to input into array.

cout << "Enter the number of integers you would like to put inside of an array: ";
cin >> numInt;

numArray = new int[numInt];

cout << "\nFill in the array with integers";
for (int i = 0; i < numInt; i++)
{
    cout << "Enter integer for position " << i << ": ";
    cin >> num;
    numArray[i] = num;
}

arrayToFile(dataFile, numArray, numInt);

fileToArray(dataFile, numArray, numInt);

cout << "Contents of numArray" << endl;
for (int i = 0; i < numInt; i++)
{
    cout << numArray[i] << " ";
}

delete [] numArray;

return 0;
}

//****************************
//Define arrayToFile function*
//****************************
void arrayToFile(fstream &dataFile, int* numArray, int SIZE)
{
dataFile.open("Ch12p8.dat", ios::out | ios::binary);

if(dataFile)
    dataFile.write((char*)numArray, SIZE);
dataFile.close();
}//end arrayToFile function

//****************************
//Define fileToArray function*
//****************************
void fileToFile(fstream &dataFile, int* numArray, int SIZE)
{

dataFile.open("Ch12p8.dat", ios::in | ios::binary);
if(dataFile)
    dataFile.read((char*)numArray, SIZE);
dataFile.close();
}//end fileToArray function

3 个答案:

答案 0 :(得分:1)

而不是函数fileToArray,您定义了函数fileToFile。我认为这是一个错字。

//****************************
//Define fileToArray function*
//****************************
void fileToFile(fstream &dataFile, int* numArray, int SIZE)
     ^^^^^^^^^^
{

dataFile.open("Ch12p8.dat", ios::in | ios::binary);
if(dataFile)
    dataFile.read((char*)numArray, SIZE);
dataFile.close();
}//end fileToArray function

答案 1 :(得分:0)

void fileToFile

这就是原因。您声明了 fileToArray,但从未定义它。

答案 2 :(得分:0)

你在fileToArray

的定义中有一个拼写错误
void fileToFile(fstream &dataFile, int* numArray, int SIZE)

您将其称为fileToFile。

相关问题