質問

あなたは引数を受け取るコマンドライン実行可能ファイルを持っています。このexecutalbeはWidecharの準備ができているため、この引数の1つがハイフンケースで始まるかどうかをテストしたいと思います。

コマンド-o foo

ホストが使用しているチャーセットがわからない場合、コード内でテストするにはどうすればよいですか?特定のコンソールでは、ワイダイチャーフォレストの別のcharによって同じハイフン表現を生成するために不可能であるべきではありませんか? (そのような場合、それはワイルドチャー:Pになります)

int _tmain(int argc, _TCHAR* argv[])
{
   std::wstring inputFile(argv[1]);
   if(inputFile->c_str() <is an HYPHEN>)
   {
      _tprintf(_T("First argument cannot be an option"));
   }
}
役に立ちましたか?

解決

あなたの場合、WindowsはUTF-16文字列としてコマンドラインを配信するため、文字セットについて心配する必要はありません。確認するだけです (inputFile->c_str()[0] == L'-') そして、あなたは行くのが良いはずです。もちろん、UTF-16は可変長さのエンコードですが、ハイフン文字は単一の幅広い値で表されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top