читать с stdin буферами до определенного размера. Начинал так:
std::string buffer;
std::cin.get(&buffer[0], kBufferSize);
if (auto delegate = delegate_.lock()) {
delegate->addBuffer(buffer);
}
if (!std::cin.gcount()) {
if (auto delegate = delegate_.lock()) {
delegate->readingFinished();
}
break;
}
Но оно почему-то не работает. Где можно об этом почитать?
Что не работает?
Как бы надо в строке буфер-то выделить, нет ? std::string buffer; std::cin.get(&buffer[0], kBufferSize);
У тебя строка-то пустая.
Тут ещё такая бяка: неизвестно, сколько .get() реально прочитал из потока. Он может прочитать МЕНЬШЕ.
здесь вся обработка ввода
может заменить тут if (!std::cin.gcount()) { на if (!std::cin) {
Обсуждают сегодня