У меня есть следующий код для передачи байтов из файла в мое приложение C++:
char *buffer = new char[SIZE];
while (!std::cin.eof()) {
std::cin.read(buffer, SIZE);
for(int i=0; i<SIZE; i++){
std::cout << buffer[i] << std::endl;
}
}
Однако проблема заключается в том, что я выводил/читал первые байты SIZE для этого канала. Как я могу прочитать все байты из трубы, где размер трубы больше, чем SIZE?
gcount() не проверяется после операции чтения. Надлежащим образом:
while (!std::cin.eof()) {
std::cin.read(buffer, SIZE);
for(int i=0; i<cin.gcount(); i++){
std::cout << buffer[i] << std::endl;
}
}