Буферы cout и cin в C ++ и буферы в целом

Может кто-нибудь более подробно объяснить концепцию буферов? Я понимаю, что буферы - это структуры данных, в которых хранятся символы, и место, откуда данные должны быть прочитаны. В чем идея очистки буферов?

Когда буфер очищается, относится ли это к записи сохраненных в нем символов?

Из текста:

To avoid the overhead of writing in response to each output request, the library uses the 
buffer to accumulate the characters to be written, and flushes the buffer, by writing its
contents to the output device, only when necessary. By doing so, it can combine several 
output operations into a single write.

Когда имеется в виду «очистка», это почти звучит так, как будто буфер очищается. написано, но в то же время стерто. Просто домыслы.

Значит, для того, чтобы быть написанным для просмотра на экране, требуется очистка буфера?

When our program writes its prompt to cout, that output goes into the buffer associated
with the standard output stream. Next, we attempt to read from cin. This read flushes
the cout buffer, so we are assured that our user will see the prompt.

Здесь звучит так, как если бы использование 'endl' в конце сообщало системе, что она должна писать немедленно (подразумевая иначе не было бы?) Что такое endl не используется?

Writing the value of std::endl ends the line of 
output, and then flushes the buffer, which forces the system to write to the output 
stream immediately.
16
задан bden 14 February 2012 в 09:08
поделиться