У меня есть небольшой фрагмент кода, который читает файл, и я хочу найти точное совпадение для строки, но fscanf также читает аналогичную строку. Как я могу сделать его более строгим, то есть чувствительным к регистру или читающим точное совпадение для строки?
Фрагмент ниже:
while(fgets(spectral_buffer,MAX_SIZE1,fr) != NULL)
{
if (fscanf(fr, "Data in DB matching with precursor %f:\n",&prec) != 0) {
spectral_precursor[teller] = prec;
printf("%f\n",spectral_precursor[teller]);
prec_teller++;
}
teller++;
}
Пример входного фрагмента:
Data in DB matching with precursor 924.7: /* This should be read */
<Lots of lines regarding the element in DB>
Data in DB matching with precursor 1228.4: /* This should be read */
<Lots of lines regarding the element in DB>
No data in DB matching with precursor 123.4: /* This shouldn't be read */
<No lines following this>
Вывод, который я получаю для этого фрагмента:
924.700012
1228.400024
1228.400024
Проблема здесь в том, что строка 1228 является «уникальной» во входном файле, поэтому либо она каким-то образом читает строку 123.4, поскольку она содержит (неправильные случаи), что искомая строка или fscanf работает иначе, чем я думаю.
Заранее спасибо за ваше время;)