Получен ответ для поиска конкретного символа в буфере =>
#include<iostream>
#include<string>
int main()
{
int i;
std::streambuf *obj=std::cin.rdbuf();
std::istream sobj(obj);
/*THIS ONE EXTRACTS FROM THE BUFFER ONE CHARACTER AT A TIME*/
while((i=sobj.std::istream::get())!=EOF)
{
std::cout<<(char)i;
}
/*EOFBIT IS SET FOR THE STREAM WHEN EOF IS ENCOUNTERED*/
if(sobj.eof()==true)
{
std::cout<<"EOF FOUND"<<std::endl;
}
return 0;
}
Аналогично любой символ может быть найден в буфере и sobj
может быть заменен на cin
и может быть проверен на наличиеEOF
.Например, предположим, что искомый символ - D , и нам нужно прекратить чтение после того, как мы нашли D в буфере:
int i;
while((i=std::cin.std::istream::get())!='D')
{
std::cout<<(char)i;
}
, поэтому есливвод avb45Dert
, тогда вывод будет avb45
.