2017-11-29 17 views
-2

私はテキストエディタ用のプログラムを書いているので、特定の文字を入力すると関数が呼び出されるようにswitch文を設定しています。たとえば、「?」と入力するとそれは私の問題は、選択肢のいくつかは、彼らが文字にNFを入力しなければならない新しいファイルを作成するために、例えば、2つの文字を持っているということですので、Cのスイッチケースで2文字を読み込む

scanf("%c", &choice); 
switch(choice) 
{ 
case '?': 
help(); 

のような機能のヘルプ()を呼び出すことで、ヘルプメニューを紹介します。私はこのケースをどのようにして実装するのですか?私は ""が必要ですか?文字の代わりに文字列として選択肢をスキャンする必要がありますか?

case "NF": 
newFile(); 
+0

を使用する必要があります。文字列に対して 'switch()'することはできないので、 'strcmp()'を使う必要があります。 –

答えて

1

文字が1つの場合、その値に基づいて、switchステートメントを使用して決定できます。その実際の値は1バイトの符号なし整数です。しかし、ここには2つの文字があり、switchは使用できません。 あなたは `` `)(`のsscanfと `のscanf()`フォーマット文字列、または `のfgets()の%S`を使用if..else..else..

if (!strcmp(choice, "NF")) { 
    // deal with NF 
} else if (!strcmp(size, "SomethingElse")) { 
    // deal with it 
} // and so on 
関連する問題