Я самообучаюсь C, и сейчас я изучаю функции Scanf и Printf.Scanf/Printf in C ... что здесь происходит?
Я приспособил эту программу, чтобы проверить себя:
char topping[24];
int slices;
int day, year;
float cost;
char month[10];
printf(" How much does a pizza cost in your area?\n");
printf("$");
scanf(" %f", &cost);
printf("What is your favorite one-word pizza topping?\n");
scanf(" %s",topping);
printf("How many slices of %s pizza, topping can you eat in one sitting\n",topping);
scanf(" %d", &slices);
printf(" What is today's date (enter in the following format 1-Jan-2016)\n");
scanf(" %d-%s-%d", &day, month, &year);
printf("\nWhy not treat yourself to dinner on %d-%s-%d and have %d slices of %s pizza ? It will only cost you %.2f", day, month, year,slices, topping,cost);
Цель упражнения для меня, чтобы понять понимание функций Scanf и как «тонкий» они могут быть.
Моя тестовая программа здесь хорошо работает ... за исключением выхода в переменной года.
Почему выходные данные в переменной года выплевывают тарабарщину и как я могу ее исправить?
спасибо.
Попробуйте использовать «% d-% 9 [^ -] -% d» –
Также узнайте, как использовать отладчик для перехода по вашему коду, чтобы увидеть, как он работает –