I'm in an Intro to C++ class, and for one of our assignments we're making an online shop. One of our problems is to make a search function for the inventory, using a linear search, then display the corresponding price, stock, and shipability for that item.
For some reason, no matter how much I try and tweak it, it always returns false for the search, and that the store doesn't carry the item, even if I type in an item that I know is in the items array.
For example, if I type Moon Pie (which is in my array) in the getline, it'll still return as -1 like it isn't. Anything noticeably wrong with this code?
Here's my inputInventory.txt
Moon Pie    3.50    15  1
Cosmic Brownie  2.00    12  0
Moon Shine  7.00    7   1
Astronaut Icecream  4.00    11  1
Neptune Nuggets 2.50    30  1
Venus Vodka 6.50    10  1
Planet Pop  4.50    20  0
Starry Salad    3.00    15  0
Celeste Cakes   5.00    11  1
Plasma Potion   9.99    4   1
Star Fruit  2.50    10  1
Sun-dae 7.00    20  0
Moon Cheese 5.00    10  1
Milky Way Milkshake 6.50    5   0
Pluto Pie   7.00    9   10
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
using namespace std;
const int MAX = 15;
void searchInventory(string itemNames[], double itemCost[], int itemNoShip[MAX][2]);
int linearSearch(string arr[], int size, string value);
int main() {
  int input;
  string items[MAX];
  double priceItems[MAX];
  int noItems[MAX][2];
  cout << "\n1. Read in Inventory\n";
  cout << "2. Display Inventory\n";
  cin >> input;
  while (input > 2 || input < 1) {
    cout << "An error has occured. Please input a value 1 - 2. >> ";
    cin >> input;
  }
  switch (input) {
    case 1:
      if (readInventory(items, priceItems, noItems) == true) {
        cout << "\nReading the file...\n";
      }
      break;
    case 2:
      searchInventory(items, priceItems, noItems);
      break;
  }
}
bool readInventory(string itemNames[], double itemCost[], int itemNoShip[MAX][2]) {
  bool fileRead = false;
  ifstream inputFile; // Pointer
  inputFile.open("inputInventory.txt");
  if (inputFile) // Test if file opened
  {
    for (int row = 0; row < MAX; row++) {
      getline(inputFile, itemNames[row], '\t');
      inputFile >> itemCost[row];
      inputFile >> itemNoShip[row][0];
      inputFile >> itemNoShip[row][1];
    }
    fileRead = true;
    inputFile.close();
  }
  return fileRead;
}
void searchInventory(string itemNames[], double itemCost[], int itemNoShip[MAX][2]) {
  string search;
  int result;
  int position;
  cout << "Please type the name of the item you are looking for. > ";
  cin.ignore();
  getline(cin,search);
  result = linearSearch(itemNames, MAX, search);
  cout << result;
  if (result >= 0) {
    cout << "\nYour item was found!\n";
    cout << itemNames[result] << itemCost[result] << itemNoShip[result][0] << "Shippable:" << itemNoShip[result][1];
  }
  else {
    cout << "\nThis item was not found in the list.";
  }
}
int linearSearch(string arr[], int size, string value) {
  int position;
  int index;
 
  for (index = 0; index < size; index++) {
    if (arr[index] == value) {
      position = index;
    } 
    else {
      position = -1;
    }
  }      
  
  return position;
}