Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Не работает gets (программа игнорирует операцию ввода) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Переделать код! http://www.cyberforum.ru/cpp-beginners/thread666990.html
Вот есть задача: Найти площадь шестиугольника, стороны которого равны a, b, c, d, е, f и диагонали, которые разбивают шестиугольник на четыре треугольника, равны 4, 4.5, 6. Я написал код, но для...
C++ Не происходит перерисовка окна во время длительных вычислений При написание программы с использованиям Windows Forms возникла следующая проблема: окно программы вовремя выполнения расчета не перерисовается, после перекрытия другим окном, в результате вместо... http://www.cyberforum.ru/cpp-beginners/thread666983.html
Записать правильно встраиваемую функцию C++
Разные источники предлагают немного отличающиеся записи: 1) Учебник Либерти так: #include <iostream> using namespace std; inline int Double(int); // прототип функции int main() {
Найти сумму ряда с точностью eps C++
Найти сумму ряда с точностью eps , общий член которого равен an=n!/2n! . Точность считается достигнутой, если следующий член последовательности меньше заданного .
C++ Вычислить значение выражения (исправить код) http://www.cyberforum.ru/cpp-beginners/thread666903.html
Даны целые числа а, b, с. Вычислить в-сумму у = min (a, b + c) + max (ac, b)-min (a2, c). Вот что я написал: #include <iostream> using namespace std; int min(int,int,int); void main(){ int...
C++ Анализ треугольника и вычисление его площади 1. Ввести три числа(три стороны треугольника) a,b,c в порядке возрастания. Выдать a,b,c на экран 2. Если a<=c-b то треугольник не существует. Выдать информацию об этом и закончить вычисления. 3.... подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт CЭксперт С++
9628 / 5576 / 947
Регистрация: 25.07.2009
Сообщений: 10,712
09.10.2012, 15:00
GarrisonD, после
Цитата Сообщение от GarrisonD Посмотреть сообщение
cin >> key;
в потоке ввода остаётся символ перевода строки, который gets() ваша и ловит в качестве ввода. И кстати, кто Вас надоумил совмещать операции ввода/вывода из С++ с вводом в стиле С, да ещё и с функцией, которую во всех руководствах настоятельно рекомендуют не использовать и держат исключительно для обратной совместимости?
SECURITY CONSIDERATIONS
The gets() function cannot be used securely. Because of its lack of
bounds checking, and the inability for the calling program to reliably
determine the length of the next incoming line, the use of this function
enables malicious users to arbitrarily change a running program's func-
tionality through a buffer overflow attack. It is strongly suggested
that the fgets() function be used in all cases. (See the FSA.)
man gets
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru