# Entrada y salida ```{contents} :local: :depth: 1 ``` En programación competitiva, la entrada y salida del programa viene dada de una forma muy concreta. - El juez online pasa por la entrada estándar `stdin` un archivo de texto secreto de entrada - El juez luego compara la salida `stdout` de tu programa con un archivo secreto de salida ## Simular la entrada y salida En general la mejor opción es enviar un fichero de texto con la entrada a tu programa. Sin embargo esto puede ser complicado o lento de preparar. Puedes emular la entrada copiando y pegando el sample in en la terminal, y viendo lo que saca tu programa en terminal. En la terminal se verá la entrada y la salida mezclada, pero el juez las ve por separado. ## Advertencias - Cualquier print por pantalla se considera salida. Por lo tanto, cuidado con: - Los mensajes de esperar el input (*i.e. "dame un entero"*) - Los mensajes de depuración (*i.e. "el valor de x es 5"*) - Normalmente el output esperado es exacto, así que mucho cuidado con el formato: - Espacios, tabuladores y saltos de línea antes, entre y detrás de los números - Números decimales (normalmente se establece el máximo de decimales) - Formato de las cadenas (espacios, mayúsculas, etc.) - **NO** hace falta hacer comprobaciones de la entrada. Si el enunciado dice que la entrada viene dada de cierta forma, no hace falta comprobarla. - No hace falta procesar todos los casos de prueba del tirón y sacar toda la salida de todos los casos al final. ## Lenguajes ```{toctree} :maxdepth: 1 entrada_salida_cpp entrada_salida_py ``` ## Ejercicios ```{todo} `Work In Progress` ```