Моя проблема могла быть в указателе или моем синтаксисе здесь. Я пытаюсь заполнить два массива names[]
и shares[]
из входного файла.
Половина программы, ручной ввод, работает нормально. Каждая попытка fstream half
печатала пустую таблицу вывода с -1.#IND
для процента каждого акционера
.
Я пробовал cin >> name >> share
, getline(shareFile, name)
, while(shareFile >> name >> share){ ... names[i] = name; shares[i] = share;
, но я не знаю, как правильно использовать getline. Думаю, я работаю с первым. Как я уже сказал, я не знаю, проблема в моем индексе или в коде здесь.
Это функция, которая (я считаю) является проблемой, но, возможно, она просто неправильно передает вещи.
void getFileInputs(string names[], int shares[], int size)
{
string file;
string name;
int share = 0;
bool isOpen = true;
ifstream shareFile("inputfile.txt");
cout << "*----------------------------------*\n"
<< "* Input From File: *\n"
<< "*----------------------------------*\n";
cout << "Please enter the name of the file (.txt): ";
cin >> file;
cout << "\n";
shareFile.open("inputfile.txt");
if(file == "inputfile.txt" || file == "inputfile")
{
int i = 0;
do{
for(i = 0; i < size; i++)
{
shareFile >> names[i] >> shares[i];
}
if(shareFile.eof())
{
isOpen = false;
}
}while(isOpen == true && shareFile >> name >> share);
}
else
{
cout << "Unrecognized file name. \n" << endl;
isOpen = false;
}
}