Python
 Computer >> コンピューター >  >> プログラミング >> Python

競技プログラミングのためのC/C++、Java、Pythonにおける外部ファイル入出力

本記事では、競技プログラミングにおいて、C/C++、Java、Pythonの各言語で外部ファイルから入力を受け取り、外部ファイルへ出力する方法を解説します。大規模なテストデータを扱う際に非常に便利なテクニックなので、ぜひマスターしておきましょう。

Pythonでのファイル入出力

Pythonでは、sysモジュールを利用することで、標準入出力を簡単にファイルへリダイレクトできます。sys.stdinをファイルオブジェクトに置き換えるとinput()などがファイルから読み込むようになり、sys.stdoutを置き換えるとprint()の出力がファイルに書き込まれるようになります。

コード例

import sys

# ファイルから入力を取得する
sys.stdin = open('sampleinp.txt', 'r')

# 出力をファイルへ書き込む
sys.stdout = open('sampleout.txt', 'w')

Javaでのファイル入出力

Javaでは、FileReaderと組み合わせたBufferedReaderを使ってファイルから入力を読み込み、BufferedWriterと組み合わせたPrintWriterを使って結果をファイルへ書き出すのが一般的です。バッファリングによって高速な入出力が可能になります。

コード例

// Javaプログラム: 入出力の処理
import java.io.*;

class Input {
    public static void main(String[] args) throws IOException {
        // ファイルから入力を読み込む
        BufferedReader br = new BufferedReader(
        new FileReader("sampleinp.txt"));

        // ファイルへ出力を書き込む
        PrintWriter pw = new PrintWriter(
        new BufferedWriter(
        new FileWriter("sampleout.txt")));

        pw.flush();
    }
}

C/C++でのファイル入出力

C/C++では、freopen()関数を使用します。この関数は、標準入力(stdin)や標準出力(stdout)といった既存のストリームを、指定したファイルに関連付け直すものです。第1引数にファイル名、第2引数にオープンモード("r"は読み取り専用、"w"は書き込み)、第3引数に対象のストリームを指定します。これにより、以降のscanf()printf()がそのままファイルに対して動作するようになります。

コード例

#include<stdio.h>

int main() {
    // ファイルから入力を取得する
    freopen("sampleinp.txt", "r", stdin);

    // 出力をファイルへ書き込む
    freopen("sampleout.txt", "w", stdout);

    return 0;
}

まとめ

本記事では、競技プログラミング向けに、C/C++、Java、Pythonそれぞれの言語で外部ファイルから入力を受け取り、結果を外部ファイルへ出力する方法を学びました。Pythonのsysモジュールによるリダイレクト、JavaのBufferedReader/PrintWriter、C/C++のfreopen()を使いこなせるようになると、大量のデータを扱う問題も効率的に検証できるようになります。

  1. Python TkinterとPyPDF2でPDFビューアを作成する方法

    Pythonは、多様な機能や用途に対応した豊富なライブラリと拡張モジュールを備えていることで広く知られています。PDFファイルを扱う場合にはPyPDF2というツールキットが利用でき、PDFの処理やテキスト抽出、複数ページの結合、暗号化など、さまざまな操作が可能です。PDFのようなファイルストリームの管理・操作において非常に便利なパッケージです。本記事では、PyPDF2を活用して、ユーザーがローカルディレクトリからPDFファイルを選択して開き、その内容を表示できるTkinterアプリケーションを作成する方法を解説します。 アプリケーション作成の手順 以下の手順に従ってアプリケーションを構築してい

  2. Windowsで使えるPython開発用IDEおすすめ7選|PyCharmからAtomまで徹底解説

    Windows環境でPythonの開発を始めるとき、最初に悩むのが「どのIDE(統合開発環境)を選ぶべきか」という問題です。IDEはコードの編集・実行・デバッグなどをひとつのアプリケーションで完結できる強力なツールであり、選択次第で開発効率が大きく変わります。 本記事では、Windowsで利用できる代表的なPython対応IDEを厳選し、それぞれの特徴やメリットをわかりやすく解説します。 PyCharm PyCharmはJetBrains社が開発する、Python開発で最も人気のあるIDEのひとつです。無料のコミュニティ版と有料のプロフェッショナル版が用意されており、初心者からプロフェッショ