大きなバッファーを作成し、1 回の読み取りでいっぱいにするだけです。必要に応じて繰り返します。
ストリーム (stdio) はこれを実装します。setbufferを使用fopen
してから使用できます
編集
それはかなり単純です
/* 5MB - Can increase or decrease this to your hearts content */
#define BUFFER_SIZE 5242880
char buffer[BUFFER_SIZE];
file = fopen("filename", "r");
setbuffer(file, buffer, BUFFER_SIZE);
次に、任意の操作を使用して読み取りfscanf
などを行いますfgets
。
編集
すみません、C++ であることに気付きませんでした
これがC++のコードです
#include <iostream>
#include <fstream>
using namespace std;
...
const int BUFFER_SIZE = 5242880;
filebuf fb;
char buffer[BUFFER_SIZE];
fb.setbuf(buffer, BUFFER_SIZE);
fb.open ("test.txt",ios::in);
istream is(&fb);
その後、使用できますint i; is >> i
等
幸せな今ティノ・ディドリクセン