-
C++樹林
【C++】cinによる標準入力の基本 | キーボードから値を受け取る方法
はじめに C++のプログラムで、ユーザーに数値を入力してもらったり、名前を打ち込んでもらったりと、キーボードからの入力を受け取りたい場面は必ずあります。この標準的な入力機能を提供するのが、<iostream>ヘッダーで定義されているstd::cin (cha... -
C++樹林
【C++】coutによる標準出力の基本 | 文字や数値を画面に表示する方法
はじめに C++の学習において、プログラムの動作や変数の内容を確認するために、コンソール(黒い画面)に結果を表示するのは最も基本的な操作です。この標準的な出力機能を提供するのが、<iostream>ヘッダーで定義されているstd::cout (character ou... -
C++樹林
【C++】cinの入力における空白文字の扱いの基本 (noskipws, ws)
はじめに C++の cin や ifstream といった入力ストリームは、>> 演算子を使うと、デフォルトで入力中の空白文字(スペース、タブ、改行など)を自動的に読み飛ばしてくれます。これにより、「10 20」という入力を2つの整数として簡単に読み込めます... -
C++樹林
【C++】std::getline で、スペースを含む一行を読み取る方法
はじめに C++で cin >> my_string; のように入力ストリーム演算子 >> を使うと、スペースやタブ、改行までを一つの区切りとして、単語ごとにしか文字列を読み取れません。 「Hello World」のように、スペースを含む一行全体を一つの文字列とし... -
C++樹林
【C++】ストリームのエラー状態を判定し、回復する方法 (fail, clear)
はじめに C++で cin や ifstream を使ってデータを読み込む際、ユーザーが数値を入力すべきところに文字列を入力するなど、予期せぬ入力によってストリームがエラー状態になることがあります。一度エラー状態になると、そのストリームはそれ以降の入力を全... -
C++樹林
【C++】cin / ifstream で入力の終わり(EOF)を判定する方法
はじめに C++で、ファイルや標準入力から、データがいくつあるか分からないまま、全てのデータを読み終わりまで処理したい、という場面は非常に多くあります。このような場合、入力ストリームの状態をチェックして、ループを終了させる必要があります。 入... -
C++樹林
【C++】ファイル操作の基本 ofstream(書き込み)とifstream(読み込み)の使い方
はじめに C++で、プログラムのデータをファイルに保存したり、ファイルからデータを読み込んだりするには、ファイルストリームを利用するのが標準的な方法です。<fstream> ヘッダーには、ファイル操作のための主要なクラスが用意されています。 std:... -
C++樹林
【C++】文字列ストリーム (stringstream) の使い方 | メモリ上で文字列を読み書きする
はじめに C++で、数値を文字列に変換したり、逆に文字列を数値に変換したり、あるいはスペースで区切られた文字列を単語ごとに分解したい、といった場面は頻繁にあります。 標準ライブラリ <sstream> ヘッダーで提供される「文字列ストリーム」を使... -
Python樹林
Pythonで作るシンプルなコイン投げゲーム
この記事では、Pythonのrandomモジュールとinput()関数を使い、ユーザーがコインの表裏を当てる簡単なコマンドラインゲームを作成する方法を解説します。 プログラムの設計 このゲームの処理の流れは以下の通りです。 プレイヤーに「表」か「裏」を入力し... -
Python樹林
Pythonデバッグ入門:デバッガのステップ実行とブレークポイント
この記事では、プログラムのバグを発見し修正するための強力なツールであるデバッガの基本的な使い方について解説します。print文を多用するデバッグ方法とは異なり、デバッガはプログラムを一行ずつ実行しながら、その時々の変数の状態を監視することがで... -
Python樹林
Pythonのloggingモジュール入門:効果的なログ記録の基本
この記事では、Pythonの標準ライブラリであるloggingモジュールについて解説します。print文によるデバッグと異なり、loggingモジュールはイベントの重要度に応じたメッセージのフィルタリングや、出力をファイルに保存する機能などを提供し、より体系的で... -
Python樹林
Pythonのassert文によるデバッグと正常性チェック
この記事では、Pythonのassert(アサート)文について解説します。アサートは、プログラムが開発者の意図通りに動作していることを確認するための「正常性チェック」として機能し、バグの早期発見に役立ちます。 アサートの基本構文 assert文は、指定した... -
Python樹林
Pythonのtracebackモジュールで例外情報をファイルに記録する方法
この記事では、Pythonプログラムでハンドルされなかった例外が発生した際に表示されるトレースバック情報を、tracebackモジュールを使って文字列として取得し、ログファイルなどに記録する方法を解説します。 トレースバックとは Pythonプログラムがエラー... -
Python樹林
Pythonでraise文を使って意図的に例外を発生させる方法
この記事では、Pythonでプログラムの実行中に特定の条件が満たされなかった場合に、意図的にエラーを発生させるためのraise文について解説します。これにより、関数の不正な使用を防ぎ、より堅牢なコードを作成できます。 raise文による例外の発生 raise文... -
Python樹林
PythonでフォルダをZIPファイルに自動バックアップするスクリプト
この記事では、指定したフォルダの全内容を、バージョン番号付きのZIPファイルとしてバックアップするPythonスクリプトの作成方法を解説します。os、pathlib、zipfileモジュールを組み合わせて、実用的な自動化ツールを構築します。 1. 設計:バックアップ... -
Python樹林
Pythonでディレクトリ走査とZIPファイル操作:os.walkとzipfile
この記事では、Pythonの標準ライブラリを使い、ファイルシステムのディレクトリ構造を再帰的に走査(渡り歩く)する方法と、ZIPアーカイブの作成、読み込み、展開を行う方法について解説します。 os.walk()によるディレクトリツリーの操作 os.walk()は、指... -
Python樹林
Pythonのshutilモジュールによるファイル・フォルダ操作
この記事では、Pythonでファイルやフォルダのコピー、移動、名前の変更、削除といった高レベルなファイル操作を行うための標準ライブラリ、shutilモジュールについて解説します。 ファイルとフォルダのコピー shutilモジュールは、ファイルやフォルダを簡... -
Python樹林
Pythonでコマンドライン多機能クリップボードツールを作成する
この記事では、Pythonのsys、pyperclip、shelveモジュールを使い、複数のテキスト断片をキーワードに紐付けて保存・読み込みができる、コマンドラインベースの多機能クリップボード(マルチクリップボード)ツールを作成する方法を解説します。 1. 必要な... -
Python樹林
Pythonでランダムな問題集と解答集を自動生成する
この記事では、Pythonのrandomモジュールやファイル操作の知識を組み合わせて、問題と選択肢が毎回ランダムな順序で出題される、複数パターンの問題集とそれに対応する解答集を自動で生成するスクリプトの作成方法を解説します。 1. 準備:問題データの定... -
Python樹林
Pythonのpprint.pformat()で変数を.pyファイルに保存・再利用する方法
この記事では、Pythonのpprintモジュールが提供するpformat()関数を使い、リストや辞書といった変数の内容を人間が読める形式で.pyファイルに保存し、後からそのファイルをモジュールとしてインポートしてデータを再利用するというテクニックについて解説... -
Python樹林
Pythonのshelveモジュールで変数をファイルに保存する方法
この記事では、Pythonのshelveモジュールを使い、プログラム中の変数(リストや辞書など)をファイルに保存し、後で再利用する方法について解説します。これにより、プログラムを終了してもデータを永続化させることができます。 シェルフファイルへの変数... -
Python樹林
Pythonでのファイル読み書き:with open()による安全なファイル操作
この記事では、Pythonでテキストファイルの読み込みと書き込みを行うための基本的な方法を解説します。特に、ファイルを安全かつ確実に扱うための現代的なwith文の使用法に焦点を当てます。 モダンで安全なファイル操作:with文 Pythonでファイルを操作す... -
Python樹林
Pythonでのパス操作:os.pathとモダンなpathlibの比較
この記事では、Pythonでファイルパスを操作するための伝統的なos.pathモジュールと、より現代的で推奨されるオブジェクト指向のアプローチを提供するpathlibモジュールの主要な機能について比較しながら解説します。 絶対パスと相対パスの操作 パスの形式... -
Python樹林
Pythonによるファイルパス操作:osモジュールとモダンなpathlib
この記事では、Pythonでファイルやフォルダのパスを扱うための基本的な方法について解説します。OS(Windows, macOS, Linux)間の差異を吸収し、環境に依存しない堅牢なコードを書くためのosモジュールと、よりモダンで推奨されるpathlibモジュールの使い... -
Python樹林
Pythonと正規表現でテキストから電話番号とメールアドレスを自動抽出する
この記事では、Pythonのre(正規表現)モジュールとpyperclip(クリップボード操作)モジュールを組み合わせて、クリップボードにコピーされたテキストから、電話番号とメールアドレスを自動で抽出し、整形して再びクリップボードに戻す実用的なツールを作... -
Python樹林
Python正規表現:re.IGNORECASE, re.DOTALL, re.VERBOSEフラグの組み合わせ
この記事では、Pythonの正規表現をコンパイルする際に、パターンの動作を細かく制御するためのオプションフラグについて解説します。特に、複数のフラグをどのように組み合わせるかに焦点を当てます。 主要な正規表現フラグ re.compile()の第2引数に指定で... -
Python樹林
Python正規表現:ワイルドカード.、.*パターン、sub()による置換
この記事では、Pythonの正規表現で非常に強力なワイルドカード文字であるドット.、それを用いたドットスター(.*)パターン、そしてマッチした文字列を置換するsub()メソッドについて解説します。 ドット.:任意の1文字にマッチ(ワイルドカード) 正規表現... -
C++樹林
【C++】ストリームの読み書き位置を移動する方法 (seekg, tellg)
はじめに C++のファイルストリーム (fstream) や文字列ストリーム (stringstream) を扱う際、通常は先頭から末尾へ順番に読み書きを行いますが、時には「特定のバイト位置まで一気に移動したい」「一度読んだ場所まで戻って、もう一度読み直したい」という... -
C++樹林
【C++】ファイルの内容を全て一度に読み込む方法 (istreambuf_iterator)
はじめに C++でファイルの内容を全て vector や string に読み込みたい場合、while ループで1文字または1行ずつ読み込んでいくのが基本的な方法です。しかし、この方法はコードが冗長になりがちです。 よりモダンで簡潔なアプローチが、std::istreambuf_it... -
C++樹林
【C++】自作クラスを入出力ストリーム (ostream/istream) に対応させる方法
はじめに C++では、cout(コンソール出力)や cin(コンソール入力)だけでなく、ofstream(ファイル出力)や stringstream(文字列ストリーム)など、様々な種類の「ストリーム」が提供されています。これらは全て、ostream(出力ストリーム)とistream(...