Improve vector printing
This commit is contained in:
parent
1b845b271b
commit
5ef5beb3b5
21
main.c
21
main.c
@ -133,6 +133,9 @@ void cvec_print(cvec vec, cvec_print_func print_func, cvec_print_flag flags)
|
|||||||
|
|
||||||
for (size_t i = 0; i < print_left; i++)
|
for (size_t i = 0; i < print_left; i++)
|
||||||
{
|
{
|
||||||
|
if (flags & CVEC_PRINT_FLAG_MULTILINE)
|
||||||
|
printf("\t");
|
||||||
|
|
||||||
print_func(vec.elem_storage + elems_printed * vec.elem_size);
|
print_func(vec.elem_storage + elems_printed * vec.elem_size);
|
||||||
printf("%c ", sep);
|
printf("%c ", sep);
|
||||||
elems_printed++;
|
elems_printed++;
|
||||||
@ -140,10 +143,13 @@ void cvec_print(cvec vec, cvec_print_func print_func, cvec_print_flag flags)
|
|||||||
|
|
||||||
if (flags & CVEC_PRINT_FLAG_ELLIPSIS)
|
if (flags & CVEC_PRINT_FLAG_ELLIPSIS)
|
||||||
{
|
{
|
||||||
|
if (flags & CVEC_PRINT_FLAG_MULTILINE)
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
printf("... %lu elements in between ... ", print_center);
|
printf("... %lu elements in between ... ", print_center);
|
||||||
|
|
||||||
if (flags & CVEC_PRINT_FLAG_MULTILINE)
|
if (flags & CVEC_PRINT_FLAG_MULTILINE)
|
||||||
printf("\n");
|
printf("\n\n");
|
||||||
|
|
||||||
elems_printed += print_center;
|
elems_printed += print_center;
|
||||||
}
|
}
|
||||||
@ -151,6 +157,9 @@ void cvec_print(cvec vec, cvec_print_func print_func, cvec_print_flag flags)
|
|||||||
{
|
{
|
||||||
for (size_t i = 0; i < print_center; i++)
|
for (size_t i = 0; i < print_center; i++)
|
||||||
{
|
{
|
||||||
|
if (flags & CVEC_PRINT_FLAG_MULTILINE)
|
||||||
|
printf("\t");
|
||||||
|
|
||||||
print_func(vec.elem_storage + elems_printed * vec.elem_size);
|
print_func(vec.elem_storage + elems_printed * vec.elem_size);
|
||||||
|
|
||||||
if (elems_printed != vec.elem_count - 1)
|
if (elems_printed != vec.elem_count - 1)
|
||||||
@ -162,6 +171,9 @@ void cvec_print(cvec vec, cvec_print_func print_func, cvec_print_flag flags)
|
|||||||
|
|
||||||
for (size_t i = 0; i < print_right; i++)
|
for (size_t i = 0; i < print_right; i++)
|
||||||
{
|
{
|
||||||
|
if (flags & CVEC_PRINT_FLAG_MULTILINE)
|
||||||
|
printf("\t");
|
||||||
|
|
||||||
print_func(vec.elem_storage + elems_printed * vec.elem_size);
|
print_func(vec.elem_storage + elems_printed * vec.elem_size);
|
||||||
|
|
||||||
if (elems_printed != vec.elem_count - 1)
|
if (elems_printed != vec.elem_count - 1)
|
||||||
@ -235,6 +247,13 @@ int main()
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int elem = 0;
|
||||||
|
ret = cvec_get(&elem, vec, 10);
|
||||||
|
if (ret < 0)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
printf("Got 10th element: %d\n", elem);
|
||||||
|
|
||||||
cvec_print(vec, cvec_int_print_func,
|
cvec_print(vec, cvec_int_print_func,
|
||||||
CVEC_PRINT_FLAG_ELLIPSIS | CVEC_PRINT_FLAG_MULTILINE);
|
CVEC_PRINT_FLAG_ELLIPSIS | CVEC_PRINT_FLAG_MULTILINE);
|
||||||
cvec_pop(&vec);
|
cvec_pop(&vec);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user