C/C++プログラムでディレクトリ(フォルダ)を作成する方法
はじめに
このチュートリアルでは、C/C++プログラムを使って新しいディレクトリ(フォルダ)を作成する方法について解説します。
ディレクトリの新規作成には、dir.h ヘッダーで定義されている mkdir() 関数を使用します。この関数は、引数に指定した名前のディレクトリを作成し、成功した場合は 0 を、失敗した場合は -1 を返します。
注意: 本記事で紹介するコードは、Windows 環境のコンパイラ(Turbo C++ など)向けです。Linux や macOS ではヘッダーファイルや関数の仕様が異なるため、そのままでは動作しない点にご留意ください。
サンプルコード
#include <conio.h>
#include <dir.h>
#include <process.h>
#include <stdio.h>
void main(){
int check;
char* dirname = "tutorialspoint";
clrscr();
check = mkdir(dirname);
// ディレクトリが作成されたかどうかを確認
if (!check)
printf("Directory created\n");
else {
printf("Unable to create directory\n");
exit(1);
}
getch();
system("dir/p");
getch();
}
実行結果
Directory created
コードの解説
処理の流れは以下のとおりです。
- ポインタ変数
dirnameに、作成したいディレクトリ名「tutorialspoint」を設定します。 mkdir(dirname)を呼び出し、その戻り値を変数checkに格納します。checkが 0(偽)であればディレクトリの作成に成功しているため、「Directory created」と表示します。- 失敗した場合は「Unable to create directory」を表示し、
exit(1)によってプログラムを異常終了させます。 - 最後に
system("dir/p")を実行して、ディレクトリが実際に作成されたことを一覧表示で確認できます。
補足:モダンなコンパイラの場合
Visual Studio などの最近の Windows 向けコンパイラでは、<direct.h> ヘッダーの _mkdir() 関数を使用するのが一般的です。また、C++17 以降では <filesystem> の std::filesystem::create_directory() を使うことで、OS に依存しない移植性の高いコードを書くことも可能です。
-
三角マッチ棒数を求めるC/C++プログラムの解説と実装例
三角マッチ棒数とはマッチ棒を正三角形の形に並べて作った三角形のことを「三角マッチ棒数(Triangular Matchstick Number)」と呼びます。三角マッチ棒数とは、そのマッチ棒の三角形を作るために必要なマッチ棒の本数を指します。問題の概要この問題では、マッチ棒で作るピラミッドの段数 X が与えられます。そして、X 段のマッチ棒ピラミッドを構成するために必要なマッチ棒の最小総本数を出力するプログラムを作成するのが課題です。概念をより明確にするために、具体例を見てみましょう。入力: 7 出力: 84解法の考え方この問題は、三角数(Triangular Number)の拡張として考える
-
C/C++でn番目のカタラン数を求めるプログラム
カタラン数(Catalan numbers)とは、組み合わせ論におけるさまざまな数え上げ問題に現れる自然数の数列です。特に、再帰的に定義される対象の個数を数える場面で頻繁に登場することで知られています。カタラン数の主な性質ディック語(Dyck word)との関係Cn は、長さ 2n のディック語の総数を表します。ディック語とは、n 個の X と n 個の Y から構成され、文字列のどの先頭部分を見ても Y の数が X の数を超えない文字列のことです。例えば、長さ 6 のディック語は次の通りです。XXXYYY XYXXYY XYXYXY XXYYXY XXYXYY.正しい括弧の対応付けX を開き