Entrada/Salida desde archivo externo en C/C++, Java y Python para Programación Competitiva | conjunto 2

Prerrequisitos: Entrada/Salida desde archivo externo en C/C++, Java y Python para Programación Competitiva

En la publicación anterior, vimos una forma de tener una entrada/salida estándar desde un archivo externo mediante el manejo de archivos. En este post veremos una manera muy fácil de hacerlo. Aquí compilaremos y ejecutaremos nuestro código desde la terminal o cmd usando flujos de entrada y salida.

Entorno de Windows 

Para Windows , es el caso de los operadores de redirección para redirigir los flujos de entrada y salida de comandos desde las ubicaciones predeterminadas a diferentes ubicaciones.

  1. Redirigir la entrada de comandos (<) : para redirigir la entrada de comandos desde el teclado a un archivo o dispositivo, use el operador <.
  2. Redirigir la salida del comando (>) : para redirigir la salida del comando desde la ventana del símbolo del sistema a un archivo o dispositivo, use el operador >.

Ejecuta el código

a.exe < input_file > output_file
// A simple C++ code (test_code.cpp) which takes 
// one string as input and prints the same string
// to output
#include <iostream>
using namespace std;
  
int main()
{
    string S;
    cin >> S;
    cout << S;
  
  return 0;
} 

Entrada de input.txt:

GeeksForGeeks

Compilar y ejecutar:

g++ test_code.cpp
a.exe < input.txt > output.txt

Salida en salida.txt:

GeeksForGeeks

Entorno Linux

Redirección de E/S en Linux:  la entrada y la salida en el entorno Linux se distribuyen en tres flujos. Estos flujos son:

  1. entrada estándar (stdin) : el flujo de entrada estándar generalmente transporta datos de un usuario a un programa. Los programas que esperan una entrada estándar generalmente reciben la entrada de un dispositivo, como un teclado, pero usando < podemos redirigir la entrada desde el archivo de texto.
  2. salida estándar (stdout) : la salida estándar escribe los datos generados por un programa. Cuando el flujo de salida estándar no se redirige, enviará texto a la terminal. Al usar > podemos redirigir la salida a un archivo de texto.
  3. 3. error estándar (stderr) : error estándar escribe los errores generados por un programa que ha fallado en algún momento de su ejecución. Al igual que la salida estándar, el destino predeterminado de este flujo es la pantalla del terminal.

Linux incluye comandos de redirección para cada transmisión.

Sobrescribir : los comandos con un solo corchete sobrescriben el contenido existente del destino.

  • > – salida estándar
  • < – entrada estándar
  • 2> – error estándar

Agregar : los comandos con corchetes dobles no sobrescriben el contenido existente del destino.

  • >> – salida estándar
  • << – entrada estándar
  • 2>> – error estándar

Aquí, usaremos el comando Sobrescribir porque no necesitamos agregar la salida, es decir, solo queremos la salida de un solo código.

Compilar código C++

g++ file_name.cpp

Ejecuta el código

./a.out < input_file > output_file

De manera similar, podemos proporcionar entrada/salida estándar de archivos de texto para C o Java compilando primero el código y, mientras ejecutamos el código, proporcionamos archivos de entrada/salida en un formato dado. Para lenguajes como python que no requieren compilación, hacemos lo siguiente

python test_code.py < input.txt > output.txt

Artículo relacionado:  Métodos de entrada de Python para programación competitiva

Referencias :

Este artículo es una contribución de Pratik Chhajer . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *