ошибка, связанная с gets() c++

94
28 августа 2021, 12:50

решаю задачу на coderbyte, там массив читается так:

int main() { 
  int A[] = gets(stdin);
  cout << ArrayAdditionI(A, sizeof(A)/sizeof(*A));
  return 0;
}

И компилятор на сайте не придирается, но в ide выдает ошибку:

no matching function for call to 'gets'

Так же за ошибку считает: sizeof(A)/sizeof(*A)

invalid application of 'sizeof' to an incomplete type 'int []'

Вопрос в том, откуда возникает эта ошибка, и как ее исправить.

Answer 1

gets(stdin) - это какое-то извращение, специфичное для сайта CoderByte. Подробности тут.

CoderByte перед компиляцией прямо в коде ищет запись gets(stdin), заменяет ее на список чисел {a, b, c...}, и передает компилятору уже измененный код.

В стандартном С++ эта функция работает по-другому. (А начиная с С++14 ее больше нет в языке.)

READ ALSO
Выход из масива | Помогите пожалуйста

Выход из масива | Помогите пожалуйста

ПриветТакая проблема, что после строчки int coc=0; Цикл с вложенным, там xPtr выходит за рамки, не понимаю почему, можете помочь пожалуйста решить...

112
Не выполняется сложение с float

Не выполняется сложение с float

Я выполняю сложение float + floatМне надо в цикле прибавить к массиву типа float значение переменной Eps=0

102
Помогите разобраться с интерфейсом

Помогите разобраться с интерфейсом

При попытке скомпилировать проект возникает ошибка

112
Как изменить цвет конкретного текста для вывода в консоль а не всей консоли?

Как изменить цвет конкретного текста для вывода в консоль а не всей консоли?

Я хочу отдельный вывод в программе выделить с помощью цветовНо при использовании таких вариантов как например:

170