2016-12-01 10 views
0

これが正しいかどうか誰かが分かりますか? バイナリファイルを1行ずつ読み込み、バッファに格納しようとしていますか?バッファに格納されている新しい行は、前に保存された行を削除しますか?バイナリ読書でテキストベースの読み取り、およびread()、であるあなたがgetlineを混合しているいくつかの理由バイナリファイルから読み込んでバッファに格納する

 ifs.open(filename, std::ios::binary); 
     for (std::string line; getline(ifs, line,' ');) 
       { 
        ifs.read(reinterpret_cast<char *> (buffer), 3*h*w); 

       } 

答えて

1

また、bufferは何ですか、それは何のサイズですか?したがって、ここでは簡単な例を示します。

ifs.open(filename, std::ios::binary); // assume, that everything is OK 

constexpr size_t bufSize = 256; 
char buffer[bufSize]; 
size_t charsRead{ 0 }; 
do { 
    charsRead = ifs.read(buffer, bufSize) 
    // check if charsRead == 0, if it's ok 
    // do something with filled buffer. 
    // Note, that last read will have less than bufSize characters, 
    // So, query charsRead each time. 
} while (charsRead == bufSize); 
+0

私はppmファイルを読み込んでバッファに保存する必要があります。バッファのサイズはheight * weight * 3でなければなりません。だから、あなたはこの方法がこれに対して速いと思いますか?ありがとう – madrugadas25845

+0

方法は絶対に大丈夫です、あなたはそれをあなたのppmのために調整する必要があります – Starl1ght

関連する問題