VMS Help  —  CRTL  wcstoul  Example
        #include <stdlib.h>
        #include <stdio.h>
        #include <wchar.h>
        #include <errno.h>
        #include <limits.h>

        /* This test calls wcstoul() to convert a string to an     */
        /* unsigned long integer. wcstoul outputs the resulting    */
        /* integer and any characters that could not be converted. */

        #define MAX_STRING 128

        main()
        {

            int base = 10,
                errno;
            char *input_string = "1234.56";
            wchar_t string_array[MAX_STRING],
                   *ptr;
            size_t size;
            unsigned long int val;
            printf("base = [%d]\n", base);
            printf("String to convert = %s\n", input_string);
          if ((size = mbstowcs(string_array, input_string, MAX_STRING)) ==

                (size_t)-1) {

                perror("mbstowcs");
                exit(EXIT_FAILURE);
            }
            printf("wchar_t string is = [%S]\n", string_array);

            errno = 0;
            val = wcstoul(string_array, &ptr, base);
            if (errno == 0) {
        printf("returned unsigned long int from wcstoul = [%u]\n", val);
              printf("wide char terminating scan(ptr) = [%S]\n\n", ptr);
            }
            if (errno == ERANGE) {
                perror("error value is :");
                printf("ULONG_MAX = [%u]\n", ULONG_MAX);
                printf("wcstoul failed, val = [%d]\n\n", val);
            }

        }

    Running the example program produces the following result:

    base = [10]
    String to convert = 1234.56
    wchar_t string is = [1234.56]
    returned unsigned long int from wcstoul = [1234]
    wide char terminating scan(ptr) = [.56]
Close Help