программа выдает неверные значения один раз при беззнаковом целом - PullRequest
0 голосов
/ 21 июня 2020

Я пытаюсь распечатать каждое поле строки информации. Таким образом, программа печатает идеально, пока не дойдет до переменной размера. Он дает значение 28277, а затем остальная часть программы выводит неверные значения, если они вообще есть. Первый комментарий - это введенная строка, а остальные - значения, которые печатаются из программы. любая помощь в выяснении этой ошибки была бы замечательной.

#include <stdio.h>


int main()
{
        char permission[11];
        char username[32];
        char usergroup[32];
        unsigned char links;
        unsigned char day;
        unsigned int size;
        char month[4];
        char year[8];
        char filename[32];

        //-rw-rw-r-- 1 xsperopoulos xsperopoulos  225 Jun 20 18:55 a.out
        //Permission: -rw-rw-r--
        //Links: 1
        //Username: xsperopoulos
        //Usergroup: xsperopoulos
        //Size: 28277
        //Month:
        //Day: J
        //Year or Time Stamp:
        //Filename: 2
        printf("Please enter a line of text from ls -l:");
        scanf("%[^0-9]%c%s%s%5u%c%s%c%c",permission,&links,username,usergroup,&size,month,&day,year,filename);

        //permission
        printf("Permission: %s\n",permission);

        //links
        printf("Links: %c\n",links);

        //username
        printf("Username: %s\n",username);

        //usergroup
        printf("Usergroup: %s\n",usergroup);

        //size
        printf("Size: %5u\n",size);

        //month
        printf("Month: %s\n",month);

        //day
        printf("Day: %c\n",day);

        //year or timestamp
        printf("Year or Time Stamp: %s\n",year);

        //filename
        printf("Filename: %s\n",filename);
}

...