Coderbyte - это онлайновый сайт, посвященный проблемам кодирования (я нашел его всего 2 минуты назад).
Первый вызов C++, с которым вас встретят, имеет скелет C++, который нужно изменить:
#include <iostream> #include <string> using namespace std; int FirstFactorial(int num) { // Code goes here return num; } int main() { // Keep this function call here cout << FirstFactorial(gets(stdin)); return 0; }
Если вы мало знакомы с C++ первой вещью * которая появляется в ваших глазах:
int FirstFactorial(int num);
cout << FirstFactorial(gets(stdin));
Итак, хорошо, кодовые вызовы gets
что устарело с C++ 11 и удалено с C++ 14, что само по себе плохо.
Но потом я понимаю: gets
имеет тип char*(char*)
. Таким образом, он не должен принимать параметр FILE*
и результат не должен использоваться вместо параметра int
, но... он не только компилируется без каких-либо предупреждений или ошибок, но и работает и фактически передает правильное входное значение FirstFactorial
За пределами этого конкретного сайта код не компилируется (как и ожидалось), так что здесь происходит?
* На самом деле первый using namespace std
но это не имеет отношения к моей проблеме здесь.