Взаимодействие 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)
Объяснение кода листинга программы
- Программа открывает файл
001.txtдля записи (режимwt). - Если файл успешно открыт, программа продолжает выполнение. Если файл не может быть открыт, программа завершается.