Взаимодействие gets и scanf - Функция gets "пропускает" свой ввод - C (СИ)

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

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

Здравствуйте! Столкнулся с такой проблемой: после использования функции

scanf,

функция

gets

"пропускает" свой ввод. Как можно обойти такое "взаимодействие"?

Gets

необходим для забивания предложения, программа должна быть написана только на

СИ

... Вот пример, иллюстрирующий данную проблему:
#include<stdio.h>
void main()
{
 FILE *f1;
 float p;
 char z[10],x[10],y[10];
 f1=fopen("001.txt","wt");
 if (fopen("001.txt","wt")!=NULL)
  {
  scanf("%f",&p);
  printf ("vvedeno:p=%f\n",p);
  gets(y);
  printf ("vvedeno:y=%s\n",y);
  gets(z);
  printf ("vvedeno:z=%s\n",z);
  gets(x);
  printf ("vvedeno:x=%s\n",x);
  fprintf(f1,"%f\n%s\n%s\n%s",p,y,z,x);
  }
 else (printf("/nCreate file 001.txt failure!"));
}
Полученный результат:

36.599998 ac dc

Решение задачи: «Взаимодействие gets и scanf - Функция gets "пропускает" свой ввод»

textual
Листинг программы
f1=fopen("001.txt","wt");
    if (fopen("001.txt","wt")!=NULL)

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

  1. Программа открывает файл 001.txt для записи (режим wt).
  2. Если файл успешно открыт, программа продолжает выполнение. Если файл не может быть открыт, программа завершается.

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


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

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

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