0

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

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

4

1 回答 1

4

Don't forget that std::cin is of type std::istream. You can use standard get() on it to retrieve a char at a time with:

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

To read PAGE_SIZE bytes at a go, use read() instead:

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

Remember to always check error conditions and EOF after reading.

于 2013-10-16T20:54:26.690 回答