C++でファイルサイズを取得する方法【seekg・tellg活用】
C++でファイルのサイズを取得するには、まず対象のファイルを開き、読み込み位置(シークポインタ)をファイルの末尾まで移動させます。その状態で tellg() を呼び出すと、ストリームの現在位置、つまり「先頭から末尾までのバイト数」が返されるため、これがファイルサイズとなります。
サンプルコード
#include<iostream>
#include<fstream>
using namespace std;
int main() {
ifstream in_file("a.txt", ios::binary);
in_file.seekg(0, ios::end);
int file_size = in_file.tellg();
cout<<"Size of the file is"<<" "<< file_size<<" "<<"bytes";
}実行結果
Size of the file is 44 bytes
コードの解説
- ios::binary:バイナリモードでファイルを開くことで、改行コードの自動変換などが行われず、正確なバイト数を取得できます。
- seekg(0, ios::end):読み込み位置をファイルの末尾へ移動します。第1引数はオフセット、第2引数は基準位置です。
- tellg():現在の読み込み位置(先頭からのオフセット)をバイト数で返します。末尾に移動した直後に呼び出すことで、ファイル全体のサイズが分かります。
この手法は標準ライブラリだけで完結し、プラットフォームに依存しないため、WindowsでもLinuxでも同じコードで動作するのがメリットです。
-
Androidでランチャーのサムネイル(アイコン)サイズを取得する方法
はじめにこの記事では、Androidアプリでランチャーに表示されるサムネイル(ラージアイコン)のサイズを取得する方法を解説します。ポイントは、ActivityManagerクラスが提供するgetLauncherLargeIconSize()メソッドを使うことです。このメソッドは、システムがホーム画面のアイコンに使用する標準的なサイズをピクセル単位で返してくれます。それでは、具体的な手順をステップごとに見ていきましょう。ステップ1:新しいプロジェクトを作成するAndroid Studioを開き、「File」→「New Project」を選択して新しいプロジェクトを作成します。必要な項目(プロジェ
-
C++でコンソール画面をクリアする方法をわかりやすく解説
C++のプログラムからコンソール(ターミナル)画面に表示された内容を消去したい場合、system()関数を使ってOSのコマンドを実行するのが一般的な方法です。この関数は標準ライブラリ<cstdlib>で定義されており、引数として渡した文字列をシェルコマンドとして実行してくれます。クリアに使うコマンドはOSによって異なります。Linux / macOS:POSIX環境で動作する「clear」コマンドを使用Windows:コマンドプロンプト用の「cls」コマンドを使用Linuxでコンソールをクリアするサンプルコード以下は、Linux環境で「clear」コマンドをsystem()関数に渡