Я пытался убедиться, что то, что я спрашиваю, не является дубликатом, так как это должно быть очень ошибкой новичка, но я не мог найти что-то похожее, но если бы кто-то имел ссылку на подобный пост, который был бы великолепен как ну в любом случае, поэтому я пытаюсь сделать игру на линкоре, которая читает размещение кораблей из файла .csv, но перед тем, как размещать корабли, проходит через файл и проверяет, все ли корабли найдены в файле.
Данные в файле отформатированы следующим образом:
Carrier,B2,H
Battleship,D4,V
Cruiser,G4,H
Submarine,G5,V
Destroyer,G8,H
Часть, которая вызывает у меня проблемы в моем коде, - это блок:
cout << "File successfully located!\n Making sure all ships are in file...\n";
while (shipPlacement.good()) {
getline(shipPlacement, shipType, ',');
cout << shipType << endl;
shipPlacement.ignore('\n');
}
Я хочу, чтобы он занимал только в типе линкора и игнорируйте все остальное в файле. Первая строка читается правильно, она перестает читать до установленного разделителя, отлично! и затем я хочу, чтобы он игнорировал все, что следует до следующей строки, поэтому я помещаю shipPlacement.ignore ('\ n'), и с этого момента он должен снова прочитать l oop на следующем корабле вплоть до разделителя, et c. я что-то здесь упускаю? то, что происходит, - это только половина типа корабля, принимаемая в качестве входных данных. Это вывод, который я получаю:
Making sure all ships are found in file...
Carrier
leship
ser
arine
royer
Это, вероятно, простое исправление, но я не вижу, что передо мной это выглядит, Любая помощь или руководство приветствуются!