Форум программистов, компьютерный форум, киберфорум C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для caelum
1 / 0 / 1
Регистрация: 28.11.2021
Сообщений: 18
1

проблема с особенностью scanf()

20.05.2022, 11:03. Показов 423. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
доброго времени суток. столкнулся с такой особенностью scanf().
я хочу, чтобы у меня считалось значение unsigned int и в случае ввода пользователем отрицательного значения, программа сообщала об ошибке. вот фрагмент кода:
C Скопировано
1
2
3
int n;
unsigned int value;
n = scanf("%u", &value);
проблема появляется тогда, когда я хочу посмотреть, что вернул scanf(). при чтении какой-нибудь строки без чисел, он возвращает 0, при EOF возвращает -1, все как положено, вернулось количество успешных считываний. но при чтении к примеру (-1), в value записывается 4294967295, а scanf() возвращает 1, что, кажется, не совсем логично.
как мне проверить, что вводил пользователь, и в случае отрицательного числа сообщить об ошибке?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.05.2022, 11:03
Ответы с готовыми решениями:

Проблема с вводом символов '+' и '-' через scanf
Доброго времени суток всем. При написании кода возникла следующая проблема: при попытке ввести число, когда на вход подается символ,...

Проблема с повторным выводом строки после scanf
В данном куске кода я формирую строку, которая представляет собой число из 4х неповторяющихся цифр. После формирования я вывожу эту...

Проблема с чтением строки символов через scanf
проблема с чтением строки символов через scanf, раньше так всегда читало нормально, а щас пишет сначала "Run-Time Check Failure #3 -...

3
фрилансер
 Аватар для Алексей1153
6327 / 5461 / 1108
Регистрация: 11.10.2019
Сообщений: 14,528
20.05.2022, 11:22 2
Цитата Сообщение от caelum Посмотреть сообщение
unsigned int
не бывает отрицательным. Нужно считывать int

либо считывать как строку, а потом уже разбираться
1
 Аватар для caelum
1 / 0 / 1
Регистрация: 28.11.2021
Сообщений: 18
20.05.2022, 11:28  [ТС] 3
Алексей1153, я понимаю, что unsigned int не бывает отрицательным, просто техническое задание требует от меня использования переменных именно такого типа. ну да, видимо вариантом будет только чтение числа как строку :/
0
 Аватар для COKPOWEHEU
4047 / 2598 / 431
Регистрация: 09.09.2017
Сообщений: 11,565
20.05.2022, 11:52 4
Лучший ответ Сообщение было отмечено caelum как решение

Решение

Цитата Сообщение от caelum Посмотреть сообщение
но при чтении к примеру (-1), в value записывается 4294967295, а scanf() возвращает 1, что, кажется, не совсем логично.
А какого поведения вы ожидали? (-1) в unsigned int выглядит именно как 4294967295. Чтение одного аргумента прошло успешно, о чем scanf и отчитался.
Или вы хотите чтобы на ввод отрицательного числа он ругался? Можете читать в long int и если оно отрицательное, выдавать ошибку, а если положительное - присваивать результат.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.05.2022, 11:52
Помогаю со студенческими работами здесь

Проблема со scanf и printf
В общем, парни, выручайте. Прога не работает, при использовании scanf и printf (так надо по заданию), точнее, она работает, но либо выдает...

Не включается монитор (с забавной особенностью)
Ситуация вроде распространенная,но ответов,как таковых,я не нашел. После нажатия на кнопку питания стартует железо (жужжат...

Определенный интеграл с особенностью на отрезке
помогите решить - очень надо.. \int_{0}^{4}dx/(x-2)^2

Система уравнений с особенностью в нуле
Есть система диф.уравнений с начальными условиями, там особенность деления на ноль. При численном решении приходится отступать от нуля. Но...

Интеграл с корнем и логарифмической особенностью
Необходимо разобраться как решать интегралы типа: \int_{-\infty}^{\infty} dx \, \frac{\sqrt{x^2+a^2}}{(x^2+b^2)^2}\, ln(x+c) , где a и b...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Сопоставление с образцом (Pattern Matching) в Python: Списки и словари
py-thonny 19.03.2025
Программисты любят, когда код говорит сам за себя. Представьте, что вы можете просмотреть структуру данных и мгновенно понять, что с ней делать — без сложных условий и вложенных проверок. Именно эту. . .
Работа с метаданными EXIF и JPEG в JavaScript
run.dev 19.03.2025
Работа с изображениями в веб-разработке нередко выходит за рамки простого отображения картинки. Современные задачи требуют глубокого понимания структуры файлов и умения манипулировать их внутренними. . .
Чеклист для Kubernetes в продакшене: Лучшие практики для SRE
Mr. Docker 19.03.2025
Когда сталкиваешься с запуском Kubernetes в продакшене, невольно задаешься вопросом: почему то, что так гладко работало в тестовой среде, вдруг начинает вызывать головную боль на боевых системах?. . .
Разработка продвинутого ИИ в Unity с использованием Behavior Graph
GameUnited 19.03.2025
В разработке игр искусственный интеллект персонажей часто становится тем элементом, который превращает хорошую игру в выдающуюся. До недавнего времени разработчикам под Unity приходилось либо писать. . .
Словари в Python: методы работы, оптимизация, сериализация
py-thonny 19.03.2025
Каждый хотя бы раз сталкивался с необходимостью хранить связанные данные, где важна не только сама информация, но и их взаимосвязь. В дебрях Python словари — это тот универсальный инструмент, который. . .
Реализация паттерна CQRS с Event Sourcing в PHP
Jason-Webb 19.03.2025
CQRS (Command Query Responsibility Segregation) — это архитектурный паттерн, который разделяет операции чтения и записи данных в приложении. Если вы столкнулись с ситуацией, когда ваше PHP-приложение. . .
std::span в C++: Подпредставлени­я и срезы
NullReferenced 18.03.2025
Если вы когда-нибудь работали с большими объемами данных в C++, то наверняка сталкивались с необходимостью манипулировать отдельными частями массивов или контейнеров. Традиционные подходы часто. . .
std::span в C++: Доступ к элементам и итерирование
NullReferenced 18.03.2025
В C++ каждый разработчик сталкивается с проблемой эффективного управления последовательностями данных. Представьте: вы работаете с массивом, передаете его в функцию, а затем в другую, и каждый раз. . .
Утечки памяти в C#
UnmanagedCoder 18.03.2025
Когда мы говорим о разработке приложений на C#, то часто успокаиваем себя мыслью, что сборщик мусора решит все наши проблемы с памятью. "Память управляется автоматически" — эта мантра прочно засела в. . .
std::span в C++: Введение в невладеющее представление
NullReferenced 18.03.2025
С появлением стандарта C++20 у нас появился новый инструмент — std::span, который представляет собой невладеющее представление для работы с последовательностями данных. std::span — это легковесный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер