Чтение строк файла - остается лишний символ при очередном проходе - C (СИ)

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

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

Здраствуйте. Есть функция которая циклично считывает строки и числа со стандартного потока. примерно так:
#define SSC_OWNER 64
#define SSC_BRAND 32
#define SSC_REG_NUM 16
 
typedef struct {
    int id;
    char owner[SSC_OWNER]; 
    char brand[SSC_BRAND]; 
    char reg_num[SSC_REG_NUM]; 
    int issue_year; 
    int insp_year;
} CAR;
 
CAR* carInput(CAR* car) {
    printf("Enter the owner's name:");        gets(car->owner);
    printf("Enter the car brand:");          gets(car->brand);
    printf("Enter the registration number:");   gets(car->reg_num);
    printf("Enter the car issue year:");      scanf("%d", &car->issue_year);
    printf("Enter the year of passing inspection. If not, enter 0:");
    scanf("%d", &car->insp_year);
    return car;
}
Эта функция запускается несколько раз в цикле. Проблема в том, что после того как считается число scanf("%d", &car->insp_year); в буфере вроде как остается то ли '\n' то ли '\0' и на следущий раз этот символ попадает в gets(car->owner);, недавая пользователю ввести строку. пробовал так fflush(stdin);, так: fgets(car->owner, SSC_OWNER - 1, stdin);, и даже так: fseek(stdin, 0, SEEK_END); даже функцию из википедии пробовал - ничерта не получается. Помогите пожалуйтса

Решение задачи: «Чтение строк файла - остается лишний символ при очередном проходе»

textual
Листинг программы
scanf("%d", &car->insp_year);

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

  1. В данном коде используется функция scanf для ввода данных в переменную car->insp_year.
  2. Функция scanf принимает два аргумента: формат ввода и адрес переменной для сохранения введенных данных.
  3. Формат ввода %d означает, что ожидается ввод целого числа.
  4. car - это указатель на структуру, в которую будет сохранено значение переменной.
  5. insp_year - это название поля структуры, в которое будет сохранено значение переменной.
  6. Значение переменной car->insp_year будет сохранено в поле структуры insp_year.

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


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

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

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