У вас есть ошибка несоответствия скобок. Подсчитайте количество (
и сравните с числом )
.
Возможно, строка должна быть:
while (fgets(linebuffer, sizeof linebuffer, fp_infile) != NULL)
Обратите внимание, что вам нужны только парены с sizeof
, когда этого требует синтаксис аргумента; sizeof
сам по себе оператор, а не функция.
Мой ручной и очень похожий на детский сад способ сопоставления скобок заключается в простом сканировании строки слева направо, сохраняя при этом счет:
- Начало в 0
- Когда вы найдете
(
, увеличьте счет
- Когда вы найдете
)
, уменьшите счет
Когда вы достигнете конца строки, если счет не вернется к 0, у вас будет несоответствие. Очень очевидно, но достаточно эффективно, чтобы быстро определить наличие несоответствия.