Это моя первая попытка, но это не сработало.Ошибка дескриптора для 2 поплавков, разделенных пробелами в одной строке
Он идет в INF цикла, если я ввожу неверное значение входного сигнала намеренно, например: Asdas dfsad afdas
float a,b ;
while (1){
if(scanf("%f %f",&a,&b) == 2) {
break;
}
printf("Error, try again:");
}
Поскольку 'scanf()' et al. Не заботятся о строках, это неправильные функции для использования, если вы заботитесь о строках. Прочитайте ввод с помощью функции чтения строки (['fgets()'] (http://pubs.opengroup.org/onlinepubs/9699919799/functions/fgets.html) или ['getline()'] (http://pubs.opengroup.org/onlinepubs/9699919799/functions/getline.html)), а затем проанализируйте строку с помощью 'sscanf()'. Он не заботится о новостях, но вы знаете, что у него есть только одна линия, чтобы играть. Кроме того, если первый синтаксический анализ завершился неудачей, вы можете переписать строку; вы также можете сообщить полную строку в сообщениях об ошибках, что упростит отладку. –