@Lord_North

Как считать строку с файла и проверить ее на наличие нужных символов (Си)?

Предположим у меня есть файл, где:
f(-0.1): 0.386718
f(0.0): 0.400000
f(0.1): 0.413278
f(0.2): 0.426212
Как проверить кожную строку на наличие '0.0'?
Буду очень благодарен.
  • Вопрос задан
  • 155 просмотров
Решения вопроса 3
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
Ну, примерно так:
- открыть файл, считать в буфер, закрыть файл
- цикл построчного разбора (по символу '\n')
Я так понимаю - нужно проверить на наличие комбинации "0.[0-9]"? (то есть "0." и дальше любая цифра). Тогда самый простой способ strstr() с поиском строки "0." Не нашли - ошибка, образец не найден. Если нашли - проверяем, что следующий символ попал в диапазон 0x30 - 0x39 ('0' - '9'). Если нашли - гуд, не нашли, ошибка, образец не найден.
Ответ написан
Комментировать
@LASHKOAG
Си, Робототехника, Linux, Телеметрия, Разработчик
Принцип примерно будет такой: выделяем память под массив-буфер, загружаем туда текст из файла. потом через циклы проверяем функцию cppstudio.com/post/744 и еще там есть варианты, может поможет
Ответ написан
Комментировать
myjcom
@myjcom
Lord_North,
Проще будет если записывать в файл только значения. См. код в вопросе
-0.1 0.386718
0.0 0.400000
0.1 0.413278
0.2 0.426212

а форматирование/оформление делать непосредственно при самом выводе.
FILE* fptr;
float arg = 0.0;
float res = 0.0;

fptr = fopen("my.txt", "r");
if(fptr != NULL)
{
  while(fscanf(fptr, "%f %f", &arg, &res) != EOF)
  {
    if(arg == 0.0)
    {
      printf("f(%.1f) : %f\n", arg, res);
    }
  }
}
fclose(fptr);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы