私は最も基本的なことをしようとしていますが、レンガの壁にぶつかっています。後でプログラムで使用するためにコマンドラインからファイル名を読み込もうとしていますが、argv[] から名前を抽出することさえできないようです。コードは次のとおりです。
#include <iostream>
#include <string.h>
using namespace std;
int main(int argc, char **argv[]){
cout << "argc = " << argc << "\n\n";
cout << "Filename: " << argv[1] << "\n";
return 0;
}
エラーチェックがないため、もちろん引数を提供する入力でテストしています。プログラムを実行すると、次のようになります。
./a.out testfilename
*
argc = 2
Filename: 0x7fff56e41d30
argv[1] は char の配列へのポインタであることを理解したので、この出力は理にかなっています。ただし、次の変更を加えると、
cout << "Filename: " << argv[1] << "\n";
に
cout << "Filename: " << *argv[1] << "\n";
argv[1] を逆参照して実際の文字列を取得しようとすると、セグメンテーション違反が発生します..