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

Fflush(stdin) по-разному работают в unix и windows - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сортировка массива: сначала положительные элементы, потом - отрицательные http://www.cyberforum.ru/cpp-beginners/thread1223800.html
Сделать динамическаий массив ,указатели си++ Балансовый отчет содержит N позиций.Распечатать вначале значения всех положительных балансов, а затем значение всех отрицательных.
C++ Написать программу, которая убирает с массива все элементы, которые повторяются больше трех раз Задано массив целых чисел A(n), n <= 500 . Написать программу, которая убирает с А все элементы , которые повторяются больше трех раз, а массив ущемляет. http://www.cyberforum.ru/cpp-beginners/thread1223796.html
C++ Хранение вектора экземпляров шаблонного класса неизвестного типа
Здравствуйте! Потребовалось хранить вектор экземпляров шаблонного класса неизвестного типа. Для выделения фиксированного шаблона с фиксированным размером сделал так: std::vector<Type<void*, void*>> Как потом переводить из, скажем, Type<int, double> в Type<void*, void*>? Определять в Type конструкторы копирования/перемещения, operator= для перевода из случайного набора аргументов шаблона в...
Как работает метод get и putback (Подсчитать количество символов ввода вплоть до значения '$') C++
Задание простое: подсчитать количество символов ввода вплоть до значения '$', и оставить '$' во входном потоке. Вот готовое решение: #include <iostream> int main(void) { using namespace std;
C++ Как правильно подключить lib http://www.cyberforum.ru/cpp-beginners/thread1223737.html
Добрый день. Пишу консольную программу на C++ (без использования Qt) с помощью редактора Qt Creator. Она работает, но в Qt уж очень хочется понять, как правильно подключить библиотеки через файл *.pro Если подключать так, то все работает: #pragma comment(lib,"opengl32.lib") #pragma comment(lib,"glu32.lib") #pragma comment(lib,"glut32.lib") Но при удалении #pragma... и добавлении в...
C++ Переделать программу под ввод данных из файла Помогите пожалуйста реализовать чтение из файла. Вот эти вот точки они считываются с клавиатуры, а нужно из файла.. #include <stdio.h> #include <math.h> #include <string.h> #define N 1001 #define PI 3.14159265 typedef struct point{ подробнее

Показать сообщение отдельно
orange_fox
34 / 34 / 6
Регистрация: 06.04.2014
Сообщений: 189

Fflush(stdin) по-разному работают в unix и windows - C++

07.07.2014, 13:34. Просмотров 1013. Ответов 14
Метки (Все метки)

Собственно, код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cstdio>
using namespace std;
 
int main()
{
    char word1[20], word2[20];
    cout << "Input word1: " << endl;
    cin >> word1; //Если ввести два слова, вместо одного, то второе слово остаётся лежать в буфере
    fflush(stdin); // Эта команда, по-идее, должна очистить буфер
    cout << "Input word2: " << endl;
    cin >> word2; // Чтобы можно было ручками ввести второе слово, а не брать его из буфера
    cout << "Thank you for your words: " << word1 << ", " << word2 << endl;
    return 0;
}
В windows буфер очищается:
Fflush(stdin) по-разному работают в unix и windows
А в linux - нет
Fflush(stdin) по-разному работают в unix и windows

В этом случае я вместо fflush(stdin) могу использовать while(cin.get() != '\n'), чтобы удалить все оставшиеся в буфере символы, включая '\n'. Но, если буфер будет пустым, то команда while(cin.get() != '\n') "заставит" пользователя что-то ввести, а fflush(stdin) - нет.

Что делать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru