Я не мог придумать лучшего названия, но позвольте мне объяснить.
У меня есть такой файл
potions.txt зелья
ингридиенты. текстовые
INSERT((Red Mountain Flower|0.1|2|Yes|No|Mountains,Forests),ingredients)
INSERT((Abecean Longfin|0.5|15|No|Yes|Rivers,Lakes),ingredients)
INSERT((48|Glibness|Fortify|+20 Speechcraft for 60 seconds.|96|None|None),potions)
UPDATE((Abecean Longfin|0.5|15|No|Yes|Rivers,Lakes,Swamps),ingredients)
UPDATE((205|Minor Healing|Health|Restore 25 points of Health.|17|Blue Mountain Flower|Charred Skeever Hide),potions)
UPDATE((206|Healing|Health|Restore 50 points of Health.|36|Blue Mountain Flower|Swamp Fungal Pod),potions)
SELECT((9|*|*|*|*|*|*),potions)
INSERT((Purple Mountain Flower|0.1|2|Yes|No|Mountains,Forests),ingredients)
Я пытаюсь разобрать файл, чтобы сохранить нужные вещи в правильной переменной.
Итак, я попытался написать
for(int i = 0; i < num_of_lines; i++)
{
getline(inputFile, insert, '(');
if(insert == "INSERT")
{
cout << insert << endl;
}
}
И я сразу знаю свою проблему. Когда цикл for продолжается, он будет читать в следующем порядке:
(
Red Mountain Flower|0.1|2|Yes|No|Mountains,Forests),ingredients)INSERT(
(Abecean Longfin|0.5|15|No|Yes|Rivers,Lakes),ingredients)INSERT(
Это означает, что он никогда не получит другую «вставку» для чтения, поэтому у меня никогда не будет доступа к ней для дальнейшего анализа файла.
Есть ли способ получить строку только для части строки, чтобы, если строка совпадала, я мог продолжить анализ файла? Я пытался найти функции, я пробовал функции сравнения строк, но я не могу заставить что-то работать. Будем благодарны за любые предложения о том, как я могу решить эту проблему.