コマンドラインで引数を入力する際に空白を入力すると空白までの引数しか表示できません。
なので引数にスペース、空白を入力した場合にエラー表示をしたいのですがどうすればよろしいでしょうか?
引数が空白の場合の判定方法を教えてください。
よろしくお願いします。
C++
1#include <iostream> 2#include <string> 3#include <sstream> 4#include <unordered_set> 5 6using namespace std; 7 8int main(int argc, char* argv[]) 9{ 10 /* 引数なしの場合、エラー表示 */ 11 if (argc < 2) 12 { 13 cout << "error : 引数がありません"; 14 return 1; 15 } 16 /* 使用可能な文字タイプ一覧 */ 17 /* 追加が発生した場合に追加する */ 18 unordered_set<string> chara_types = 19 { 20 "A", 21 "B", 22 "C" 23 }; 24 /* 引数を読み込む */ 25 istringstream iss(argv[1]); 26 for (string type; getline(iss, type, ',');) 27 { 28 if (chara_types.erase(type) != 1) 29 { 30 /* 文字タイプ一覧に存在しない場合 */ 31 cout << "error: 入力間違いです"; 32 return 2; 33 } 34 std::string arg =argv[1]; 35 if(arg[arg.size()-1] == ',') 36 { 37 cout << "error: 入力間違いです"; 38 return 3; 39 } 40 } 41 cout << "入力された文字 : " << argv[1]; 42 return 0; 43}
そもそもですが、いただいたソースコードの内容は理解されていますでしょうか。必要であれば「条件の追加」だけではなく、要望を満たせるように一部を書き換える必要があるはずです。
回答3件
あなたの回答
tips
プレビュー