各行が 50 個のスペースで構成される 50 行のテキスト ファイルを生成しようとしています。ただし、数行ごとに、9 または 10 バイトの余分なバイトがファイルに追加されます。
#include <iostream>
#include <fstream>
using namespace std;
void InitializeCanvas() {
ofstream file("paint.txt");
int b = 0;
for (int i = 0; i < 50; i++) {
for (int j = 0; j < 50; j++) {
file << " ";
}
file << "\r\n";
//these lines show where the pointer is and where it should be
b += 52;
int pointer = file.tellp();
int difference = pointer - b;
cout << pointer << " (" << (difference) << ")" << endl;
}
file.close();
}
int main() {
InitializeCanvas();
return 0;
}
9 行目で、9 バイトが追加されます。19 行目には、19 バイトの余分なバイトがあります。29、39、および 49 も同様です。これらの行を除いて、余分なバイトは追加されません。何が原因でしょうか?このコードは、CodeBlocks 13.12 を使用してコンパイルされました。