我收到一个未定义的引用错误。我盯着这段代码大约一个小时试图找出来。这是我得到的错误。
对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
答案 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。