Проблема в вашем коде здесь:
if (tokens == '|' && next == '#') {
Это условие никогда не может быть истинным, поскольку вы устанавливаете next
только один раз (несколько строк выше), и его значение всегда равно |
. Смотрите эту строку:
char next = inFile.peek();
И вторая проблема заключается в том, что переменная tokens
всегда имеет значение #
. Может быть, вы хотите сделать что-то вроде?
if (c == '|' && inFile.peek() == '#') {
// rest of your code
}
Редактировать: Если вы хотите сохранить номер строки, вы должны также проверить наличие \n
во втором цикле while. В противном случае номер вашей строки не будет увеличен, если вы прокомментируете несколько строк.
Но тогда вы должны временно сохранить номер строки перед тем, как войти во второй while
цикл. Если вы этого не сделаете, номер строки, который хранится в вашем векторе lineNumbers
, всегда будет номером последней строки.
int lineNumberSave = lineNumber;
while (inFile.get(c)) {
multipleComment += c;
if (c == '|' && inFile.peek() == '#') {
// rest of your code
lineNumbers.push_back(lineNumberSave);
}
}