コマンド ラインから C++ アプリケーションを呼び出し、int 型の 2 次元配列を渡す必要があるという要件があります。誰でもそれを行う方法と、argv パラメータを使用して C++ アプリケーションで解釈する方法を教えてください。
前もって感謝します。
コマンド ラインから C++ アプリケーションを呼び出し、int 型の 2 次元配列を渡す必要があるという要件があります。誰でもそれを行う方法と、argv パラメータを使用して C++ アプリケーションで解釈する方法を教えてください。
前もって感謝します。
argv
文字列を含む1次元配列のみを渡すことができます。
char* argv[]
したがって、2D配列を実際に渡すことはできませんが、「シミュレート」することはできます。
たとえば、行列のサイズ(行数と列数)を示す2つのパラメーターを渡してから、すべての要素を1つずつ渡します。
次に、使用する形式を把握して、プログラムの引数を解析します。
例:合格したい場合
1 2 3
4 5 6
次のようにプログラムを実行できます。
./my_program 2 3 1 2 3 4 5 6
argv[1]
このようにして、つまり行数、列argv[2]
数、および左上隅から始まる2D配列のすべての要素がわかります。
ポインタargv
を含む配列であることを忘れないでください。char*
つまり、すべてのパラメータを変換する必要がありますint
。
唯一の引数としてファイルを渡すことをお勧めします。または、@j_random_hacker が提案する stdin の同じ形式のデータ。人間が編集する必要がない場合は、バイナリ ファイルである可能性があります。可能な形式の 1 つ:
4 バイト = 最初の次元のサイズ 4 バイト = 2 番目の次元のサイズ 4 バイト * 最初のサイズ * 2 番目のサイズ = 配列の内容
読むとすべてがそろいます。4 バイトの int ごとに読み取り、上記のように解釈するだけです。
人間が読めるようにする必要がある場合は、csv またはスペースで区切られます。その場合、各行は改行で終わるため、次元を指定する必要はありません。