Вы не показывали ни одного кода, с которым работаете, поэтому есть некоторые предположения с моей стороны. Обычно вам не нужны средства низкого уровня (например, peek()
) при работе с потоками. То, что вы, вероятно, заинтересованы в istream_iterator
. Вот пример,
cout << "enter value";
for(istream_iterator<double> it(cin), end;
it != end; ++it)
{
cout << "\nyou entered value " << *it;
cout << "\nTry again ...";
}
Вы также можете использовать istreambuf_iterator для прямой работы с буфером:
cout << "Please, enter your name: ";
string name;
for(istreambuf_iterator<char> it(cin.rdbuf()), end;
it != end && *it != '\n'; ++it)
{
name += *it;
}
cout << "\nyour name is " << name;