Dlaczego zmienne zawsze otrzymują wartość 1?

0

Witam;)
Tak jak w temacie - dlaczego po uruchomieniu poniższego kodu, po wpisaniu imienia i nazwiska wartości zmiennych size_name oraz size_surname zawsze otrzymują wartość 1?

#include <stdio.h>

int main(void)
{
    char name[15], surname[15];
    int size_name, size_surname;

    printf("Podaj mi swoje imie oraz nazwisko\n");
    size_name = scanf("%s", name);
    size_surname = scanf("%s", surname);

    printf("%s %s\n", name, surname);
    printf("%*d %*d", size_name, size_name, size_surname, size_surname);

    return 0;
}
 
1

bo to zwraca trzy wartosci w Twoim przypadku
0, 1 albo EOF
http://www.cplusplus.com/reference/cstdio/scanf/

strlen do sprawdzania jak dlugi jest napis
http://www.cplusplus.com/reference/cstring/strlen/

2

Bo nie czytasz dokumentacji.
http://www.cplusplus.com/reference/cstdio/scanf/

On success, the function returns the number of items of the argument list successfully filled. This count can match the expected number of items or be less (even zero) due to a matching failure, a reading error, or the reach of the end-of-file.

Skoro więc masz scanf z JEDNYM argumentem to nie wiem czego się spodziewasz jak nie 1...

0

Zadaj sobie pytanie: a dlaczego miałyby otrzymywać inną wartość?

0

Dziękuję.

EDIT Poprawiony kod:

#include <stdio.h>
#include <string.h>

int main(void)
{
    char name[15], surname[15];
    int size_name, size_surname;

    printf("Podaj mi swoje imie oraz nazwisko\n");
    scanf("%s", name);
    scanf("%s", surname);

    size_name = strlen(name);
    size_surname = strlen(surname);

    printf("%s %s\n", name, surname);
    printf("%-*d %-*d", size_name, size_name, size_surname, size_surname);

    return 0;
}
 

1 użytkowników online, w tym zalogowanych: 0, gości: 1