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

Не производиться ввод при помощи функции gets(s) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Указатель и рекурсия http://www.cyberforum.ru/cpp-beginners/thread684570.html
Подскажите почему не работает? (логика работы программы изложена в комментах к ней) #include <iostream> #include <windows.h> #include <string.h> #include <stdio.h> using namespace std; void reverse(char *s); int main()
C++ Найти сумму первых 5 цифр дробной части действительного числа.например для числа 23,1680989 она равна 24.програма на С++ Найти сумму первых 5 цифр дробной части действительного числа.например для числа 23,1680989 она равна 24.Програма на С++.ПОЖАЛУЙСТА ПОМОГИТЕ,ОЧЕНЬ СРОЧНО! http://www.cyberforum.ru/cpp-beginners/thread684560.html
программа обработки символьной строки C++
Если первый аргумент командной строки опция-а, то распечатать другие аргументы без их первых символов, а если первой идет опция-r, то распечатать аргументы через один в обратном порядке. (Если аргументов нет - выдать сообщение.) Пока только есть вот такая наброска: #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char *p1, *p2;
Не вызывается деструктор C++
#include <iostream> using namespace std; class myclass { int a; public: myclass(); // конструктор ~myclass(); // деструктор void show(); };
C++ Дана вещественная матрица размерности n * m. поменять местами строки с максимальным и минимальным элементами. http://www.cyberforum.ru/cpp-beginners/thread684544.html
Дана вещественная матрица размерности n * m. поменять местами строки с максимальным и минимальным элементами.
C++ Напишите функцию, которая вычисляет сигнум-функцию числа Напишите функцию, которая вычисляет сигнум-функцию числа. Сигнум-функция возвращает: 1 если число положительное, -1 если число отрицательное, и 0 если оно равно нулю. Число передается через параметр типа int, возвращаемое значение - int. подробнее

Показать сообщение отдельно
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
31.10.2012, 01:21
Цитата Сообщение от xtorne21st Посмотреть сообщение
Не прописывать же всегда (cin >> dig2).get(); которая, как работает, пока для меня загадка...
Почему не прописать, если нужно? Работает очень просто. cin >> возвращает cin. Это то же что и:
C++
1
2
cin >> dig2;
cin.get();
После cin >> dig2; в потоке остаётся символ новой строки '\n' (попадает туда при нажатии Enter). cin.get() извлечёт его. Если не извлечь, то для функций срокового чтения (getline(), gets()), которые следуют за cin >>, он оказывается первым символом для чтения. Например, для getline() это пустая строка. Она извлечёт '\n', в массив, куда идёт чтение, запишет '\0' и код пойдёт дальше.

Добавлено через 3 минуты
Если нужно не один символ извлечь, а всё, что есть в потоке ввода (до '\n' и сам '\n'), то можно использавать конструкцию из 18 поста:
C++
1
2
cin.clear(); // если при вводе произошла ошибка, то сбпрос флага ошибки, иначе поток ввода нерабочий
while (cin.get() != '\n'); // извлечёт по символу всё из потока
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru