Cloned SEACAS for EXODUS library with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.2 KiB

2 years ago
/*
* Copyright(C) 1999-2020 National Technology & Engineering Solutions
* of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
* NTESS, the U.S. Government retains certain rights in this software.
*
* See packages/seacas/LICENSE for details
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int count_digits(int value)
{
char tmp[32];
sprintf(tmp, "%d", value);
return strlen(tmp);
}
/* Output a zero-padded sequence of digits from [0..limit). For
example zpad 10 will output 00, 01, 02, 03, ..., 09 each on a
single line.
*/
int main(int argc, char **argv)
{
int start = 0;
if (argc < 2) {
fprintf(stderr, "Usage: %s limit [start=0]\n", argv[0]);
exit(EXIT_FAILURE);
}
if (argc == 3) {
start = strtol(argv[2], NULL, 10);
}
{
int i;
char format[] = "%.0Xd\n";
char digits[2];
int limit = strtol(argv[1], NULL, 10);
/* Count number of digits needed to represent 'limit' */
int width = count_digits(limit);
sprintf(digits, "%d", width);
/* Create an output format that will zero-pad to that width */
format[3] = digits[0];
for (i = start; i < limit; i++) {
printf(format, i);
}
}
return EXIT_SUCCESS;
}