を使用して、2D ベクトルを stdio に書き込むこの関数を作成しました。printf()
static void printSheet ( const storage::twoDVec& Sheet, char format='g'
, char elDelim='\t', char vecDelim='\n')
const size_t vecSize = Sheet.vecSize;
const size_t subVecSize = Sheet.subVecSize;
char pFormat[3] = {'%', format, elDelim};
for ( size_t y = 0; y < vecSize; y++ ) {
for ( size_t x = 0; x < subVecSize; x++ ) {
printf(pFormat, Sheet.get( y, x ));
}
putchar(vecDelim);
}
}
subVecSize
[10, 13] でない限りうまく機能し、フォーマットはそうではありません
x x x
x x x
x x x
為にsubVecSize = 10
1
2
...
9
10
1
2
...
9
10
(繰り返し)。for11
と12
subVectors は斜めにスクロールし、for13
のサブベクトルはそれ自体を上書きします。たとえばvecSize==1 && subVecSize==3
、出力として1つの数値しか得られない場合。
私は何かを見落としていますか、それとも基本的なことを理解していませんprintf()
か? に変更elDelim
し' '
ても変わりません。