scanf_s nie czeka na dane wejściowe

0

Zanim ktoś powie, że nie szukałam pomocy, uprzedzam, żadne (" %lf", &liczba) nie działały, nie pomagają też fflush(stdin), ani ("\n %lf,&liczba)!
Tutaj link do całego programu: https://pastebin.com/9PDMDUY9
Tutaj fragment, o który dokładnie chodzi:

void dodaj(struct pracownik tab[], int *i)
{
    if ((*i) < 10)
    {
        printf("Wpisz nazwisko nowego pracownika: \n");
        scanf_s(" 10%s\n",&tab[*i].Nazwisko,10);
        printf("Wpisz pensje: \n");
        scanf_s("\n%lf", &tab[*i].pensja);
        printf("Wpisz premie: \n");
        scanf_s(" %lf", &tab[*i].premia);
        printf("i jest rowne %d \n", *i);
    }
    else
    {
        printf("W Twojej bazie danych jest juz 10 pracownikow!");
    }
}

są to linijki 18-32.
Proszę o pomoc!

0

Usunięta "10" w "10%s" i działa! :)

0

Nie napisałaś, o jaki problem chodzi dokładnie, ale – gwoli wyjaśnienia, dlaczego działa – być może o ten?

The format string consists of:

  • non-whitespace multibyte characters except %: each such character in the format string consumes exactly one identical character from the input stream, or causes the function to fail if the next character on the stream does not compare equal.
  • (...)

Źródło: http://en.cppreference.com/w/c/io/fscanf

Strzelam, że u Ciebie zachodziło "causes the function to fail".

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