Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
3 / 3 / 0
Регистрация: 11.11.2010
Сообщений: 38

проблема с проверкой вводимых данных

25.09.2011, 16:03. Показов 890. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <conio.h>
using namespace std;
 
double c,f;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    setlocale(LC_ALL, "rus");
 
    cout << "Введите температуру в фаренгейтах: \n";
 
    do
    {
        if (cin >> f)
        {
            c=(f-32)* 5/9;
            cout << "температура в цельсиях : \n" << c;
        }
        else
        {
            cout << "Вы ввели не число\n";
        }
    }
    while (cin.fail());
 
    getch();
    return 0;
}
Если ввести не число то он начинает выводить "Вы ввели не число", но он не запрашивает новое значение f
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.09.2011, 16:03
Ответы с готовыми решениями:

Написать функцию для ввода текущего размера массива с проверкой корректности вводимых данных
Написать функцию для ввода текущего размера массива с проверкой корректности вводимых данных.

Вычисление с проверкой вводимых данных g = arcsin(y) + rx^2 - y, r =0,135
clc; clear all; close all; disp('z(x, y) = arcsiny+r*x^2-y, r = 0.135'); r = 0.135; x = -1; disp('x &gt; 0');

Проблема с проверкой массива в базе данных
Теория: Имеется таблица. В таблице есть строка &quot;Статусы&quot;. Имею массив с этими статусами. Каждый элемент массива - идентификатор. В...

4
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
25.09.2011, 16:25
Там две проблемы. Во-первых не сбрасывается флаг ошибки потока, во-вторых нечисловые символы из потока не извлекаются, обе причины приводят к бесконечным перезапросам.
Я бы, пожалуй, преобразовал бы цикл ввода как-нибудь так:
C++
1
2
3
4
5
6
7
8
9
    while (!(cin >> f))
    {
        cin.clear();
        while (cin.get() != '\n')
            ;
        cout << "Вы ввели не число\n";
    }
    c=(f-32)* 5/9;
    cout << "температура в цельсиях : \n" << c;
Тут, правда, тоже остаётся небольшая проблема. Например если перенаправить ввод из файла с некорректными данными. Надо ещё проверять успешность get() и при ошибке выходить из программы.
1
3 / 3 / 0
Регистрация: 11.11.2010
Сообщений: 38
25.09.2011, 16:53  [ТС]
спасибо большое, ввод будет осуществятся только с клавы
0
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
25.09.2011, 16:59
Как вариант можно не строку пропускать, а слово.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    while (!(cin >> f))
    {
        cin.clear();
        string dummy;
        cin >> dummy;
        if (!cin)
        {
            cerr << "Критическая ошибка ввода" << endl;
            return 1;
        }
        cout << "Вы ввели не число\n";
    }
    c = (f-32) * 5/9;
    cout << "температура в цельсиях : \n" << c;
1
25.09.2011, 17:00

Не по теме:

Цитата Сообщение от Skip Посмотреть сообщение
спасибо большое, ввод будет осуществятся только с клавы
это может гарантировать только пользователь, а не разработчик программы :D

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.09.2011, 17:00
Помогаю со студенческими работами здесь

Работа с DateTimePicker с проверкой вводимых дат
Мне нужно проверить на совпадение два DateTimePicker. Если совпадают, то нужно запросить повторный ввод дат. Изначально даты в них всегда...

Проблема с проверкой обьєкта
делаю поворот обьэкта на 85 градусов , нужно проверить если достиг ли он 85, почему не показивает в консоле ? в det собствено добавляю...

Проблема проверкой позиций в гугле
Инструменты для веб-мастеров в Гугле показывает, что по определённому запросу я в топ3, но у меня форум общетематический и не имеет...

Проблема с проверкой на вхождение строки
Здравствуйте формучане. У меня проблема. Вот мой код проверки на наличии в тексте ссылки слова: if...

Крестики - Нолики. Проблема с проверкой победы
Решил попробовать написать крестики-нолики, но вот запнулся на проверке победы. Никак не могу определить почему переменная win не принимает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru