C++のifstreamを使ってテキストファイルから整数を読み取る方法
C++のifstreamクラスを使うと、テキストファイルから整数を簡単に読み取ることができます。この記事では、ifstreamを使ってテキストファイル内の整数を読み込み、配列に格納して表示する方法を、サンプルコードとともに解説します。
サンプルコード
#include <fstream>
#include <iostream>
using namespace std;
int main() {
// 配列のサイズを定義
int arr[30];
ifstream is("a.txt");
int cnt = 0;
int x;
// 配列に空きがあり、ファイルから読み取れている間ループ
while (cnt < 30 && is >> x)
// ファイルから整数を読み込んで配列に格納
arr[cnt++] = x;
// 配列に格納された整数を表示
cout << "The integers are:" << "\n";
for (int i = 0; i < cnt; i++) {
cout << arr[i] << ' ';
}
// ファイルを閉じる
is.close();
}
コードの解説
まず、#include <fstream> でファイル入出力用のヘッダーを読み込み、ifstream オブジェクト is を作成してファイル「a.txt」を開きます。
whileループの条件にある is >> x は、ファイルから整数を1つ読み取る抽出演算子です。読み取りに成功するとtrueを返し、ファイルの終端に達するか読み取りに失敗するとfalseを返します。この性質を利用することで、ファイルの内容をすべて読み込むまでループを継続できます。
読み取った整数は、カウンター変数 cnt を使って配列 arr に先頭から順に格納されます。その後、forループで配列内の全要素を標準出力に表示し、最後に close() メソッドでファイルを閉じて処理を終了します。
注意点
配列のサイズを超えて読み込まないよう、ループ条件で cnt の上限チェックを行うことが重要です。この例では配列サイズが30なので、最大30個の整数まで読み込みます。ファイル内のデータ数が配列サイズを超える可能性がある場合は、vector など可変長コンテナの使用も検討するとよいでしょう。
出力結果
The integers are: 1 2 3 4 5 6 7
-
Pythonでテキストファイルから1行全体を読み取る方法
Pythonでテキストファイルから1行を読み込む基本Pythonのread()メソッドは、ファイル全体を一度にすべて読み込みます。そのため、大きなファイルを扱う場合にはメモリを大量に消費する可能性があります。ファイルを1行単位で読み込みたい場合は、readline()メソッドまたはreadlines()メソッドを使用します。たとえば、テキストファイルの最初の行だけを読み取りたい場合は、次のように記述します。f = open(my_file.txt, r+) print(f.readline())readline()を呼び出すと、現在のファイルポインタ位置にある行を1行だけ読み込み、末尾の改行文
-
Pythonでテキストファイルから指定した文字数だけ読み込む方法
Pythonでテキストファイルから指定した文字数だけ読み込む方法Pythonでファイルの内容を読み込むには、ファイルオブジェクトの f.read(size) メソッドを使用します。このメソッドは指定した量のデータを読み込み、文字列として返します。f.read(size) の基本的な動作size は省略可能な数値引数です。その挙動は以下のとおりです。size を省略した場合、または負の値を指定した場合: ファイル全体の内容が読み込まれ、返されます。size に正の数値を指定した場合: 最大で size バイト分のデータが読み込まれ、返されます。ファイルの末尾に達している場合: f.read()