私のプログラムは、次のコマンドライン引数を正しく処理する必要があります。しかし、私はそれが何であるか、それをどう実装するのかを理解していません。C++でI/Oリダイレクトが意味することは何ですか?
main.exe < test.txt
test.txtというファイルが含まれています
種類数:20
固体:6
を他の人:OS年代の0
私のプログラムは、次のコマンドライン引数を正しく処理する必要があります。しかし、私はそれが何であるか、それをどう実装するのかを理解していません。C++でI/Oリダイレクトが意味することは何ですか?
main.exe < test.txt
test.txtというファイルが含まれています
種類数:20
固体:6
を他の人:OS年代の0
プロセスデータを入出力するためのIO機能を持っています。 C++の標準入力はstd :: cinに接続され、標準出力はstd :: coutに接続され、標準エラーはstd :: cerrに接続されます。
Linuxでは、標準入力でファイルの内容を取得します。そのパスを使用してファイルをロードし、必要な処理を実行できます。
int main(void)
{
std::string file, line;
while (std::getline(std::cin, line))
{
file += line;
file += "\n";
}
//Do what you need to do here with file contents
return 0;
}
編集:私は実際にこのようなLinuxプログラムを書く必要があったので、コメントに基づいたカップル調整。
シェルスクリプト '<'は、ファイルの内容や右側のプログラムの出力(あなたの場合はtext.txt)が標準入力(std :: cin in C++)。つまり、std :: cinで直接ファイルを読むことができます。
「>」のように、左の標準出力を正しい要素にするようなものがあります。
これはシェル機能です。あなたは 'test.txt'ファイルが' std :: cin'を通して入力されるのを見るでしょう。 – user0042
また、シェルがファイルをリダイレクトするので、 'main.exe'のコマンドライン引数はありません –