Есть ли способ передать файл (bytes-, очевидно) в C++ приложение в Linux. Однако, вместо того, чтобы просто использовать getline()
я хотел бы читать каждый байт только один раз. Например, я не хочу использовать getline()
потому что он будет читать все байты до "\n", а затем мне также придется перечитать байты, данные мне через getline()
, поэтому байты читать дважды. Я просто хотел бы "повторить" каждый байт один раз.
Какая будет самая эффективная техника, чтобы читать байты PAGE_SIZE? Любой пример кода приветствуется!
Не забывайте, что std::cin
имеет тип std::istream
. Вы можете использовать стандартный get()
на нем для получения char
за раз с:
char nextVal = std::cin.get();
Чтобы прочитать PAGE_SIZE
байты в go, используйте read()
вместо:
char *buffer = new char[PAGE_SIZE];
std::cin.read(buffer, PAGE_SIZE);
Не забудьте всегда проверять условия ошибки и EOF после прочтения.