Считать числа из файла - C (СИ)

Узнай цену своей работы

Формулировка задачи:

В общем вопрос такой Как вытащить числа из строки вида x^2 + 56x - 68 = 0; Мне нужно вытащить числа 2, 56 и 68
fscanf(input, "%i %i %i", &a, &b, &c);
- Это не работает! Как быть?

Решение задачи: «Считать числа из файла»

textual
Листинг программы
#include <stdio.h>
 
void flush_input(void) {
    char c;
    while ( scanf("%c", &c) == 1 && c != '\n' )
        ;
}
 
int main(void) {
    int a, b, c;
    
    while ( printf("String: ") && scanf("%*[^0-9]%d%*[^0-9]%d%*[^0-9]%d", &a, &b, &c) == 3 ) {
        printf("A = %d; B = %d; C = %d\n", a, b, c);
        flush_input();
    }
    
    return 0;
}

Объяснение кода листинга программы

В этом коде:

  1. В функции flush_input используется цикл while, который будет выполняться до тех пор, пока scanf успешно считывает символ из стандартного ввода (то есть пока пользователь вводит данные). Внутри цикла while ничего не происходит, поэтому он просто пропускает все символы до новой строки или до ввода чисел.
  2. В функции main объявлены три переменные типа int - a, b и c.
  3. Используется цикл while, который будет выполняться до тех пор, пока printf успешно выводит строку String: и scanf успешно считывает три числа (представляющих строку, число и второе число).
  4. Внутри цикла while числа считываются в переменные a, b и c.
  5. Затем числа выводятся на экран с помощью printf.
  6. Функция flush_input вызывается для очистки буфера ввода.
  7. Если цикл while завершается, программа возвращает 0, что означает успешное завершение.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы