1

コマンド ラインから C++ アプリケーションを呼び出し、int 型の 2 次元配列を渡す必要があるという要件があります。誰でもそれを行う方法と、argv パラメータを使用して C++ アプリケーションで解釈する方法を教えてください。

前もって感謝します。

4

2 に答える 2

6

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

于 2012-10-31T11:12:23.237 に答える
1

唯一の引数としてファイルを渡すことをお勧めします。または、@j_random_hacker が提案する stdin の同じ形式のデータ。人間が編集する必要がない場合は、バイナリ ファイルである可能性があります。可能な形式の 1 つ:

4 バイト = 最初の次元のサイズ 4 バイト = 2 番目の次元のサイズ 4 バイト * 最初のサイズ * 2 番目のサイズ = 配列の内容

読むとすべてがそろいます。4 バイトの int ごとに読み取り、上記のように解釈するだけです。

人間が読めるようにする必要がある場合は、csv またはスペースで区切られます。その場合、各行は改行で終わるため、次元を指定する必要はありません。

于 2012-10-31T11:22:53.847 に答える