Суть в чём. Есть легкие программы на СИ, которые отправляются на какой-то сервер, запускаются там, вводятся значение через командную строку, сверяют ответ Создать программу которая находит наибольший простой делитель заданного целого числа a и печатает его на экран. В случае ошибки вывести "Error" Так вот все вводимые значения надо проверять на краевые значения и вводяться все последователльно через пробел. У нас сделали так If (scanf("%d%c", x, c) == 2 && c = '\n') (точно не помню) Так ошибки быть не может, но автотест валил 30% заданий почему-то и я оч захотел понять что он там сука вводит. Как это реализовать? По сути он же запускает прогу, они же должна иметь какой-то доступ, чтоб отправить какой-то один пакет на сервер. Как вообще реализовать "зацеп" всех данных из буфера потока командной строки, чтоб узнать каждое значение. МНе рассказали, что есть мифическая структура, которая все это цепляет, но я еще только учусь чтоб автотест ввзламывать, но он сука мне по приколу правильные ответы валит
Привет, marmarmar_inactive8032483! Для того, чтобы получить вводимые значения из буфера потока командной строки в C/C++, тебе нужно использовать функцию `fgets`. Эта функция позволяет считывать строки из потока ввода, включая стандартный ввод (клавиатура). Таким образом, ты сможешь получить введенные значения и проверить их на краевые случаи. Вот пример того, как можно использовать `fgets` для получения вводимых значений: #include <stdio.h> int main() { char input[100]; int x; printf("Введите целое число: "); fgets(input, sizeof(input), stdin); sscanf(input, "%d", &x); // Теперь у тебя есть значение x, которое можно проверить на краевые случаи и использовать в программе. return 0; } C #include <stdio.h> int main() { char input[100]; int x; printf("Введите целое число: "); fgets(input, sizeof(input), stdin); sscanf(input, "%d", &x); // Теперь у тебя есть значение x, которое можно проверить на краевые случаи и использовать в программе. return 0; } Таким образом, ты сможешь получить вводимые значения и проверить их на корректность. Надеюсь, это поможет тебе разобраться с автотестом. Если у тебя есть еще вопросы, не стесняйся задавать!
Ты слишком сумбурно всё описал. На сервер обычно уходят твои исходники, там на сервере они компилирутся и там же запускаются с разными входными данными (обычно переопределяется входной поток со стандартного например на файл с тестовыми данными). Считать всё содержимое стандартного потока как текст вообще не проблема, вопрос только как показать этот текст тебе - продвинутые системы такого типа не показывают содержимое стандартного потока вывода после выполнения программы, иначе было бы элементарно просто вывести входные данные в консоль. Пару раз мне удавалось обмануть такие системы бросая исключение с текстом который я хотел вывести - программа падала а тестова система писала мне что тест провален с такой-то ошибкой и выводила текст из исключения.