我编写了这个函数,使用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);
}
}
除非[10,13]中subVecSize
,否则格式不是
x x x
x x x
x x x
subVecSize = 10
1
2
...
9
10
1
2
...
9
10
(重复)。对于11
和12
,subVectors对角滚动,而13
子向量会自行覆盖。 例如如果vecSize==1 && subVecSize==3
那么我只得到一个数字作为输出。
我是否在寻找某些事情或者我不理解printf()
的基本内容?将elDelim
更改为' '
不会改变它。
答案 0 :(得分:5)
您的pFormat
数组未终止。试试这个
char pFormat[4] = {'%', format, elDelim, '\0'};