argc
argv
標準の入出力とは何の関係もありません。私が言うなら
myapp Drink More Ovaltine
argc
4になりargv
、プログラムの名前、「Drink」、「More」、「Ovaltine」の順に含まれます。
getline
入力ストリームからデータを読み込むだけです。コマンドライン引数は表示されません。argv
(とにかく、それらを取得して、に入れない限り、そうではありませstringstream
ん。それでも、ポイントは何でしょうか?)
に関しては#include
、それはランタイムI/Oとも関係ありません。これは、コンパイル中にCソースファイルを含めるようにコンパイラー(または通常はプリプロセッサー)に指示するためのものです。#include
任意のバイナリなどを作成することはできません。(インクルードが完了すると、結果の文字の束は有効なC ++コードを形成する必要があります)。そして、実行時に、ファイルはすでに含まれています-実行時に、アプリはファイルが存在することさえ知らないので、それを読み込むことさえ考えません。
短縮版:
argv
およびargc
は、アプリの起動に使用されるコマンドラインの内容にアクセスするためのものです。I/Oとはまったく関係ありません。
getline
実行時にストリームからの入力に使用され、ほとんどすべてのファイルを読み取ることができます。
#include
コンパイル時にC++コードを挿入するために使用され、実際にはソースコードにのみ使用できます。
ご覧のとおり、3つのメカニズムは完全に分離されており、無関係であり、一方を他方の代わりに使用することはほとんどできません。