0

(バイト - 明らかに) のファイルを Linux 上の C++ アプリケーションにパイプする方法はありますか。ただし、単に使用するのではなく、getline()各バイトを 1 回だけ読み取りたいと思います。getline()たとえば、「\ n」までのすべてのバイトを読み取り、次に を介して指定されたバイトを再度読み取る必要があるため、使用したくありませんgetline()。各バイトを一度「反復」したいだけです。

一度に PAGE_SIZE バイトを読み取るための最もパフォーマンスの高い手法は何でしょうか? サンプルコードは大歓迎です!

4

1 に答える 1

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 を確認してください。

于 2013-10-16T20:54:26.690 に答える