2

ユーザーから渡されたコマンドライン引数を解析するために、boost optionsparser を使用しています。現在、プログラムには、ユーザーが選択した日付形式を指定するオプションがありました。

お気に入り、

program -d %d/%m/%Y-%H:%M:%Sなどprogram -d %d/%m/%Y

私が直面している問題は、 *ユーザーから渡されたフォーマット文字列の有効性を確認するにはどうすればよいですか? *

今考えられる唯一の方法は、フォーマット文字列を日付クラスに渡し、そこで例外処理を使用することです。

ただし、オプションの解析時に有効性を確認する別の方法がある場合は、実際に形式を使用して日付文字列を生成する前に計算を行うため、データを渡して不必要に処理する必要はありません。

4

1 に答える 1

3

実際に形式を使用して日付文字列を生成する前に計算を行うため、データを渡したり、不必要に何かをしたりする必要はありません。

フォーマット文字列を検証するために日付クラスに渡す何かを計算するためにフープをジャンプする代わりに、日付クラスに今日の日付をフォーマットするように依頼し、例外が生成されるかどうかを確認してみませんか?

自分で解析しようとすると、日付クラスが行うことを複製するコードを書いているだけですが、詳細が欠落している可能性もあります。許可されるべきものを許可しないことでユーザーを苛立たせる可能性があります (完全に有効な電子メールが許可されていないことを示すアプリケーションでこれが発生しました)。フォーマットを解析するときにカバーするすべてのベースをカバーしないでください

于 2011-07-24T05:34:46.133 に答える