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++)
|
||||
{
|
||||
if (flags & CVEC_PRINT_FLAG_MULTILINE)
|
||||
printf("\t");
|
||||
|
||||
print_func(vec.elem_storage + elems_printed * vec.elem_size);
|
||||
printf("%c ", sep);
|
||||
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_MULTILINE)
|
||||
printf("\n");
|
||||
|
||||
printf("... %lu elements in between ... ", print_center);
|
||||
|
||||
if (flags & CVEC_PRINT_FLAG_MULTILINE)
|
||||
printf("\n");
|
||||
printf("\n\n");
|
||||
|
||||
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++)
|
||||
{
|
||||
if (flags & CVEC_PRINT_FLAG_MULTILINE)
|
||||
printf("\t");
|
||||
|
||||
print_func(vec.elem_storage + elems_printed * vec.elem_size);
|
||||
|
||||
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++)
|
||||
{
|
||||
if (flags & CVEC_PRINT_FLAG_MULTILINE)
|
||||
printf("\t");
|
||||
|
||||
print_func(vec.elem_storage + elems_printed * vec.elem_size);
|
||||
|
||||
if (elems_printed != vec.elem_count - 1)
|
||||
@ -235,6 +247,13 @@ int main()
|
||||
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_FLAG_ELLIPSIS | CVEC_PRINT_FLAG_MULTILINE);
|
||||
cvec_pop(&vec);
|
||||
|
Loading…
x
Reference in New Issue
Block a user