通过Linux将字节文件传输到C ++程序并逐字节读取?

时间:2013-10-16 20:50:16

标签: c++ linux pipe cin

有没有办法将(明显的字节)文件传输到Linux上的C ++应用程序中。但是,我不想只使用getline(),而是只想读取每个字节一次。例如,我不想使用getline()因为它会读取所有字节直到'\ n'然后我还必须重新读取通过getline()给我的字节,所以字节被读取两次。我只想在每个字节中“迭代”一次。

什么是性能最佳的技术,一次读取PAGE_SIZE字节?任何示例代码都是最受欢迎的!

1 个答案:

答案 0 :(得分:4)

不要忘记std::cin属于std::istream类型。您可以使用标准get()一次检索char

char nextVal = std::cin.get();

要一次性阅读PAGE_SIZE字节,请改用read()

char *buffer = new char[PAGE_SIZE];
std::cin.read(buffer, PAGE_SIZE);

请务必在阅读后始终检查错误情况和EOF。